Function at 0x10988610
Capabilities:
Inspect section memory permissions

Disassembly:
push 0xffffffffffffffff
push 0x10bd2fe2
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 8
push ebx
mov ebx, dword [esp + 0x1c]
push ebp
push esi
push edi
mov edi, ecx
mov al, byte [edi + 0x2de]
xor edx, edx
or ebp, reloc.ole32.dll_CoCreateGuid
cmp al, 4
mov dword [esp + 0x10], edi
jne 0x1098871b
mov eax, dword [edi + reloc.ole32.dll_CoCreateGuid]
xor eax, dword [ebx + reloc.ole32.dll_CoCreateGuid]
test eax, 0x80000
je 0x109886af
test byte [0x10d5106c], 1
jne 0x10988696
or dword [0x10d5106c], 1
push edx
mov eax, 0xee222
push eax
xor ecx, ecx
push ecx
push edx
push 0x10cc52a8
push 0x10cc8610
mov dword [esp + 0x38], edx
call fcn.10917720
add esp, 0x18
mov dword [0x10d51068], eax
mov dword [esp + 0x20], ebp
mov ecx, dword [0x10d51068]
movzx edx, word [ecx + 0x56]
mov esi, dword [esp + 0x30]
mov dword [esi], edx
add esi, 4
mov dword [esp + 0x30], esi
jmp 0x109886b3
mov esi, dword [esp + 0x30]
mov eax, dword [edi + reloc.ole32.dll_CoCreateGuid]
xor eax, dword [ebx + reloc.ole32.dll_CoCreateGuid]
test eax, 0x40000
je 0x1098871f
test byte [0x10d5106c], 2
jne 0x10988706
or dword [0x10d5106c], 2
xor edx, edx
push edx
mov eax, 0xee221
push eax
xor ecx, ecx
push ecx
push edx
push 0x10cc52a8
push 0x10cc8610
mov dword [esp + 0x38], 1
call fcn.10917720
add esp, 0x18
mov dword [0x10d51064], eax
mov dword [esp + 0x20], ebp
mov ecx, dword [0x10d51064]
movzx edx, word [ecx + 0x56]
mov dword [esi], edx
add esi, 4
mov dword [esp + 0x30], esi
jmp 0x1098871f
mov esi, dword [esp + 0x30]
mov eax, dword [edi + reloc.ole32.dll_CoCreateGuid]
test eax, eax
mov ebx, 3
jns 0x10988b61
mov ecx, dword [esp + 0x28]
mov edx, dword [ecx + reloc.ole32.dll_CoCreateGuid]
xor edx, eax
test dh, 0x10
je 0x10988795
test byte [0x10d5106c], 4
jne 0x10988783
or dword [0x10d5106c], 4
xor edx, edx
push edx
mov eax, 0x8dd
push eax
xor ecx, ecx
push ecx
push edx
push 0x10cc52a8
push 0x10cc8610
mov dword [esp + 0x38], 2
call fcn.10917720
add esp, 0x18
mov dword [0x10d51060], eax
mov dword [esp + 0x20], ebp
mov eax, dword [0x10d51060]
movzx ecx, word [eax + 0x56]
mov dword [esi], ecx
add esi, 4
mov dword [esp + 0x30], esi
mov eax, dword [esp + 0x28]
mov edx, dword [edi + reloc.ole32.dll_CoCreateGuid]
xor edx, dword [eax + reloc.ole32.dll_CoCreateGuid]
test dh, 0x20
je 0x109887f9
test byte [0x10d5106c], 8
jne 0x109887e6
or dword [0x10d5106c], 8
xor edx, edx
push edx
mov eax, 0x8de
push eax
xor ecx, ecx
push ecx
push edx
push 0x10cc52a8
push 0x10cc8610
mov dword [esp + 0x38], ebx
call fcn.10917720
add esp, 0x18
mov dword [0x10d5105c], eax
mov dword [esp + 0x20], ebp
mov ecx, dword [0x10d5105c]
movzx edx, word [ecx + 0x56]
mov dword [esi], edx
add esi, 4
mov dword [esp + 0x30], esi
cmp byte [edi + 0x2de], 4
jne 0x10988b61
mov ecx, dword [esp + 0x28]
mov al, byte [edi + 0x2ee]
xor al, byte [ecx + 0x2ee]
test al, 1
je 0x1098886d
test byte [0x10d5106c], 0x10
jne 0x1098885a
or dword [0x10d5106c], 0x10
xor edx, edx
push edx
mov eax, 0x81e
push eax
xor ecx, ecx
push ecx
push edx
push 0x10cc52a8
push 0x10cc8610
mov dword [esp + 0x38], 4
call fcn.10917720
add esp, 0x18
mov dword [0x10d51058], eax
mov dword [esp + 0x20], ebp
mov edx, dword [0x10d51058]
movzx eax, word [edx + 0x56]
mov dword [esi], eax
add esi, 4
mov dword [esp + 0x30], esi
mov edx, dword [esp + 0x28]
mov ecx, dword [edi + reloc.ole32.dll_CoCreateGuid]
cmp ecx, dword [edx + reloc.ole32.dll_CoCreateGuid]
je 0x109888d1
test byte [0x10d5106c], 0x20
jne 0x109888bf
or dword [0x10d5106c], 0x20
xor edx, edx
push edx
mov eax, 0x84a
push eax
xor ecx, ecx
push ecx
push edx
push 0x10cc52a8
push 0x10cc8610
mov dword [esp + 0x38], 5
call fcn.10917720
add esp, 0x18
mov dword [0x10d51054], eax
mov dword [esp + 0x20], ebp
mov eax, dword [0x10d51054]
movzx ecx, word [eax + 0x56]
mov dword [esi], ecx
add esi, 4
mov dword [esp + 0x30], esi
mov eax, dword [esp + 0x28]
mov edx, dword [edi + reloc.ole32.dll_CoCreateGuid]
cmp edx, dword [eax + reloc.ole32.dll_CoCreateGuid]
je 0x10988936
test byte [0x10d5106c], 0x40
jne 0x10988923
or dword [0x10d5106c], 0x40
xor edx, edx
push edx
mov eax, 0xb3b1a
push eax
xor ecx, ecx
push ecx
push edx
push 0x10cc52a8
push 0x10cc8610
mov dword [esp + 0x38], 6
call fcn.10917720
add esp, 0x18
mov dword [0x10d51050], eax
mov dword [esp + 0x20], ebp
mov ecx, dword [0x10d51050]
movzx edx, word [ecx + 0x56]
mov dword [esi], edx
add esi, 4
mov dword [esp + 0x30], esi
mov ecx, dword [esp + 0x28]
mov eax, dword [edi + reloc.ole32.dll_CoCreateGuid]
cmp eax, dword [ecx + reloc.ole32.dll_CoCreateGuid]
je 0x1098899e
mov al, byte [0x10d5106c]
test al, al
js 0x1098898b
or dword [0x10d5106c], 0x80
xor edx, edx
push edx
mov eax, 0xb3b18
push eax
xor ecx, ecx
push ecx
push edx
push 0x10cc52a8
push 0x10cc8610
mov dword [esp + 0x38], 7
call fcn.10917720
add esp, 0x18
mov dword [0x10d5104c], eax
mov dword [esp + 0x20], ebp
mov edx, dword [0x10d5104c]
movzx eax, word [edx + 0x56]
mov dword [esi], eax
add esi, 4
mov dword [esp + 0x30], esi
mov edx, dword [esp + 0x28]
mov cl, byte [edi + 0x2ef]
xor cl, byte [edx + 0x2ef]
test cl, 1
je 0x10988a0d
mov eax, dword [0x10d5106c]
test ah, 1
jne 0x109889fb
mov ecx, eax
or ecx, 0x100
mov dword [0x10d5106c], ecx
xor edx, edx
push edx
mov eax, 0x68b72
push eax
xor ecx, ecx
push ecx
push edx
push 0x10cc52a8
push 0x10cc8610
mov dword [esp + 0x38], 8
call fcn.10917720
add esp, 0x18
mov dword [0x10d51048], eax
mov dword [esp + 0x20], ebp
mov eax, dword [0x10d51048]
movzx ecx, word [eax + 0x56]
mov dword [esi], ecx
add esi, 4
mov dword [esp + 0x30], esi
mov eax, dword [esp + 0x28]
mov edx, dword [edi + reloc.ole32.dll_CoCreateGuid]
xor edx, dword [eax + reloc.ole32.dll_CoCreateGuid]
test edx, 0x20000000
je 0x10988a80
mov eax, dword [0x10d5106c]
test ah, 2
jne 0x10988a6d
mov ecx, eax
or ecx, 0x200
mov dword [0x10d5106c], ecx
xor edx, edx
push edx
mov eax, 0x8f906
push eax
xor ecx, ecx
push ecx
push edx
push 0x10cc52a8
push 0x10cc8610
mov dword [esp + 0x38], 9
call fcn.10917720
add esp, 0x18
mov dword [0x10d51044], eax
mov dword [esp + 0x20], ebp
mov ecx, dword [0x10d51044]
movzx edx, word [ecx + 0x56]
mov dword [esi], edx
add esi, 4
mov dword [esp + 0x30], esi
mov ecx, dword [esp + 0x28]
mov eax, dword [edi + reloc.ole32.dll_CoCreateGuid]
xor eax, dword [ecx + reloc.ole32.dll_CoCreateGuid]
test eax, 0x40000000
je 0x10988af2
mov eax, dword [0x10d5106c]
test ah, 4
jne 0x10988adf
mov ecx, eax
or ecx, 0x400
mov dword [0x10d5106c], ecx
xor edx, edx
push edx
mov eax, 0x8f907
push eax
xor ecx, ecx
push ecx
push edx
push 0x10cc52a8
push 0x10cc8610
mov dword [esp + 0x38], 0xa
call fcn.10917720
add esp, 0x18
mov dword [0x10d51040], eax
mov dword [esp + 0x20], ebp
mov edx, dword [0x10d51040]
movzx eax, word [edx + 0x56]
mov dword [esi], eax
add esi, 4
mov dword [esp + 0x30], esi
mov ecx, dword [esp + 0x28]
mov edx, dword [ecx + reloc.ole32.dll_CoCreateGuid]
xor edx, dword [edi + reloc.ole32.dll_CoCreateGuid]
test dl, 4
je 0x10988b61
mov eax, dword [0x10d5106c]
test ah, 8
jne 0x10988b4f
mov ecx, eax
or ecx, 0x800
mov dword [0x10d5106c], ecx
xor edx, edx
push edx
mov eax, 0x7e6
push eax
xor ecx, ecx
push ecx
push edx
push 0x10cc52a8
push 0x10cc8610
mov dword [esp + 0x38], 0xb
call fcn.10917720
add esp, 0x18
mov dword [0x10d5103c], eax
mov dword [esp + 0x20], ebp
mov eax, dword [0x10d5103c]
movzx ecx, word [eax + 0x56]
mov dword [esi], ecx
add esi, 4
mov dword [esp + 0x30], esi
mov eax, dword [edi + reloc.ole32.dll_CoCreateGuid]
test al, 0x40
je 0x10988b7c
mov ecx, dword [edi + reloc.ole32.dll_CoCreateGuid]
test ecx, ecx
js 0x10988b7c
mov eax, esi
jmp 0x1098a94e
cmp byte [edi + 0x2de], 4
jne 0x1098a94a
test al, 0x20
mov edi, dword [esp + 0x10]
mov esi, 0x8000000
jne 0x10988ba4
mov ecx, dword [edi + reloc.ole32.dll_CoCreateGuid]
test ecx, ecx
jns 0x109895b1
cmp byte [edi + 0x2dd], bl
je 0x109894ff
mov edx, 0x1000
xor ecx, ecx
test edx, eax
jne 0x10988c47
mov eax, dword [edi + reloc.ole32.dll_CoCreateGuid]
test eax, eax
jne 0x10988c47
mov eax, dword [esp + 0x28]
mov esi, dword [eax + reloc.ole32.dll_CoCreateGuid]
test esi, esi
je 0x10988c47
mov eax, dword [0x10d5106c]
test edx, eax
jne 0x10988c29
mov esi, eax
or esi, edx
mov dword [0x10d5106c], esi
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push ecx
mov dword [ecx], 0xd3
mov ecx, esp
xor eax, eax
mov dword [esp + 0x1c], esp
push ecx
mov dword [ecx], eax
mov ecx, esp
mov dword [esp + 0x20], esp
push 0x10cc52a8
mov dword [esp + 0x30], 0xc
mov dword [ecx], eax
call fcn.10992280
add esp, 0x10
mov dword [0x10d51038], eax
mov dword [esp + 0x20], ebp
mov ecx, dword [0x10d51038]
movzx edx, word [ecx + 0x56]
mov esi, dword [esp + 0x30]
mov dword [esi], edx
add esi, 4
mov dword [esp + 0x30], esi
mov ecx, 1
jmp 0x10988c4b
mov esi, dword [esp + 0x30]
mov eax, dword [edi + reloc.ole32.dll_CoCreateGuid]
test eax, eax
je 0x10988eae
test byte [eax + 0x2eb], 1
jne 0x10988eae
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
push eax
mov eax, dword [esp + 0x2c]
push ecx
add eax, 0xa4
lea ecx, [edi + 0xa4]
call fcn.10992e20
add esp, 8
test eax, eax
je 0x10988cf6
mov ecx, dword [0x10d5106c]
mov eax, 0x2000
test eax, ecx
jne 0x10988ce3
mov edx, ecx
or edx, eax
mov dword [0x10d5106c], edx
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push ecx
mov dword [ecx], reloc.ole32.dll_CoCreateGuid
mov ecx, esp
xor eax, eax
mov dword [esp + 0x38], esp
push ecx
mov dword [ecx], eax
mov ecx, esp
mov dword [esp + 0x3c], esp
push 0x10cc52a8
mov dword [esp + 0x30], 0xd
mov dword [ecx], eax
call fcn.10992280
add esp, 0x10
mov dword [0x10d51034], eax
mov dword [esp + 0x20], ebp
mov edx, dword [0x10d51034]
movzx eax, word [edx + 0x56]
mov dword [esi], eax
add esi, 4
mov dword [esp + 0x30], esi
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x28]
push ecx
push edx
add eax, 0xec
lea ecx, [edi + 0xec]
call fcn.10992e20
add esp, 8
test eax, eax
je 0x10988d84
mov eax, dword [0x10d5106c]
test ah, 0x40
jne 0x10988d72
mov edx, eax
or edx, 0x4000
mov dword [0x10d5106c], edx
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push ecx
mov dword [ecx], reloc.ole32.dll_CoCreateGuid
mov ecx, esp
xor eax, eax
mov dword [esp + 0x38], esp
push ecx
mov dword [ecx], eax
mov ecx, esp
mov dword [esp + 0x3c], esp
push 0x10cc52a8
mov dword [esp + 0x30], 0xe
mov dword [ecx], eax
call fcn.10992280
add esp, 0x10
mov dword [0x10d51030], eax
mov dword [esp + 0x20], ebp
mov eax, dword [0x10d51030]
movzx ecx, word [eax + 0x56]
mov dword [esi], ecx
add esi, 4
mov dword [esp + 0x30], esi
mov eax, dword [esp + 0x28]
mov edx, dword [edi + reloc.ole32.dll_CoCreateGuid]
cmp edx, dword [eax + reloc.ole32.dll_CoCreateGuid]
je 0x10988dff
mov eax, dword [0x10d5106c]
test ah, ah
js 0x10988dec
mov edx, eax
or edx, 0x8000
mov dword [0x10d5106c], edx
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push ecx
mov dword [ecx], reloc.ole32.dll_CoCreateGuid
mov ecx, esp
xor eax, eax
mov dword [esp + 0x38], esp
push ecx
mov dword [ecx], eax
mov ecx, esp
mov dword [esp + 0x3c], esp
push 0x10cc52a8
mov dword [esp + 0x30], 0xf
mov dword [ecx], eax
call fcn.10992280
add esp, 0x10
mov dword [0x10d5102c], eax
mov dword [esp + 0x20], ebp
mov ecx, dword [0x10d5102c]
movzx edx, word [ecx + 0x56]
mov dword [esi], edx
add esi, 4
mov dword [esp + 0x30], esi
mov eax, dword [edi + reloc.ole32.dll_CoCreateGuid]
test ah, 0x10
jne 0x1098903e
mov eax, dword [esp + 0x28]
mov ecx, dword [eax + reloc.ole32.dll_CoCreateGuid]
test ecx, ecx
jne 0x1098903e
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x34]
push ecx
push edx
add eax, 0x80
lea ecx, [edi + 0x80]
call fcn.10992e20
add esp, 8
test eax, eax
je 0x1098903e
mov eax, dword [0x10d5106c]
test eax, 0x10000
jne 0x10988e9e
mov edx, eax
or edx, 0x10000
mov dword [0x10d5106c], edx
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push ecx
mov dword [ecx], 0xd3
mov ecx, esp
xor eax, eax
mov dword [esp + 0x38], esp
push ecx
mov dword [ecx], eax
mov ecx, esp
mov dword [esp + 0x3c], esp
push 0x10cc52a8
mov dword [esp + 0x30], 0x10
mov dword [ecx], eax
call fcn.10992280
add esp, 0x10
mov dword [0x10d51028], eax
mov dword [esp + 0x20], ebp
mov eax, dword [0x10d51028]
movzx ecx, word [eax + 0x56]
mov dword [esi], ecx
jmp 0x10989037
mov eax, dword [edi + reloc.ole32.dll_CoCreateGuid]
test ah, 0x10
jne 0x1098903e
cmp byte [edi + 0x2dd], 2
jb 0x10988ed8
mov edx, dword [edi + reloc.ole32.dll_CoCreateGuid]
test edx, edx
js 0x10988ed8
test al, al
jns 0x1098903e
mov eax, dword [edi + reloc.ole32.dll_CoCreateGuid]
test eax, eax
js 0x10988f7f
test ecx, ecx
jne 0x10988f7f
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x34]
push edx
push eax
mov eax, dword [esp + 0x30]
add eax, 0x80
lea ecx, [edi + 0x80]
call fcn.10992e20
add esp, 8
test eax, eax
je 0x10988f7f
mov eax, dword [0x10d5106c]
test eax, 0x20000
jne 0x10988f6c
mov edx, eax
or edx, 0x20000
mov dword [0x10d5106c], edx
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push ecx
mov dword [ecx], 0xd3
mov ecx, esp
xor eax, eax
mov dword [esp + 0x38], esp
push ecx
mov dword [ecx], eax
mov ecx, esp
mov dword [esp + 0x3c], esp
push 0x10cc52a8
mov dword [esp + 0x30], 0x11
mov dword [ecx], eax
call fcn.10992280
add esp, 0x10
mov dword [0x10d51024], eax
mov dword [esp + 0x20], ebp
mov ecx, dword [0x10d51024]
movzx edx, word [ecx + 0x56]
mov dword [esi], edx
add esi, 4
mov dword [esp + 0x30], esi
mov al, byte [edi + 0x2d9]
cmp al, 2
je 0x10988f95
cmp al, 8
je 0x10988f95
cmp al, 0xa
jne 0x1098903e
mov eax, dword [edi + reloc.ole32.dll_CoCreateGuid]
test eax, eax
jns 0x10988fae
mov eax, dword [edi + reloc.ole32.dll_CoCreateGuid]
test ah, 8
jne 0x1098903e
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
push eax
mov eax, dword [esp + 0x2c]
push ecx
add eax, 0xe0
lea ecx, [edi + 0xe0]
call fcn.10992e20
add esp, 8
test eax, eax
je 0x1098903e
mov ecx, dword [0x10d5106c]
mov eax, 0x40000
test eax, ecx
jne 0x1098902b
mov edx, ecx
or edx, eax
mov dword [0x10d5106c], edx
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push ecx
mov dword [ecx], reloc.ole32.dll_CoCreateGuid
mov ecx, esp
xor eax, eax
mov dword [esp + 0x38], esp
push ecx
mov dword [ecx], eax
mov ecx, esp
mov dword [esp + 0x3c], esp
push 0x10cc52a8
mov dword [esp + 0x30], 0x12
mov dword [ecx], eax
call fcn.10992280
add esp, 0x10
mov dword [0x10d51020], eax
mov dword [esp + 0x20], ebp
mov edx, dword [0x10d51020]
movzx eax, word [edx + 0x56]
mov dword [esi], eax
add esi, 4
mov dword [esp + 0x30], esi
cmp byte [edi + 0x2d8], bl
mov eax, dword [esp + 0x28]
jne 0x1098928f
mov ecx, dword [edi + reloc.ole32.dll_CoCreateGuid]
xor ecx, dword [eax + reloc.ole32.dll_CoCreateGuid]
test ecx, 0x8000000
je 0x109890d1
mov edx, dword [0x10d5106c]
mov ecx, 0x80000
test ecx, edx
jne 0x109890be
mov ebx, edx
or ebx, ecx
mov dword [0x10d5106c], ebx
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push ecx
mov dword [ecx], reloc.ole32.dll_CoCreateGuid
mov ecx, esp
xor eax, eax
mov dword [esp + 0x38], esp
push ecx
mov dword [ecx], eax
mov ecx, esp
mov dword [esp + 0x3c], esp
push 0x10cc52a8
mov dword [esp + 0x30], 0x13
mov dword [ecx], eax
call fcn.10992280
mov dword [0x10d5101c], eax
mov eax, dword [esp + 0x38]
add esp, 0x10
mov dword [esp + 0x20], ebp
mov edx, dword [0x10d5101c]
movzx ecx, word [edx + 0x56]
mov dword [esi], ecx
add esi, 4
mov dword [esp + 0x30], esi
mov edx, dword [edi + reloc.ole32.dll_CoCreateGuid]
xor edx, dword [eax + reloc.ole32.dll_CoCreateGuid]
test edx, 0x10000000
je 0x10989157
mov ecx, dword [0x10d5106c]
test ecx, 0x100000
jne 0x10989144
mov ebx, ecx
or ebx, 0x100000
mov dword [0x10d5106c], ebx
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push ecx
mov dword [ecx], reloc.ole32.dll_CoCreateGuid
mov ecx, esp
xor eax, eax
mov dword [esp + 0x38], esp
push ecx
mov dword [ecx], eax
mov ecx, esp
mov dword [esp + 0x3c], esp
push 0x10cc52a8
mov dword [esp + 0x30], 0x14
mov dword [ecx], eax
call fcn.10992280
mov dword [0x10d51018], eax
mov eax, dword [esp + 0x38]
add esp, 0x10
mov dword [esp + 0x20], ebp
mov ecx, dword [0x10d51018]
movzx edx, word [ecx + 0x56]
mov dword [esi], edx
add esi, 4
mov dword [esp + 0x30], esi
mov ecx, dword [edi + reloc.ole32.dll_CoCreateGuid]
cmp ecx, dword [eax + reloc.ole32.dll_CoCreateGuid]
jne 0x10989181
mov edx, dword [edi + reloc.ole32.dll_CoCreateGuid]
cmp edx, dword [eax + reloc.ole32.dll_CoCreateGuid]
jne 0x10989181
mov ecx, dword [edi + reloc.ole32.dll_CoCreateGuid]
cmp ecx, dword [eax + reloc.ole32.dll_CoCreateGuid]
je 0x109891f3
mov ecx, dword [0x10d5106c]
test ecx, 0x200000
jne 0x109891e0
mov ebx, ecx
or ebx, 0x200000
mov dword [0x10d5106c], ebx
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push ecx
mov dword [ecx], reloc.ole32.dll_CoCreateGuid
mov ecx, esp
xor eax, eax
mov dword [esp + 0x38], esp
push ecx
mov dword [ecx], eax
mov ecx, esp
mov dword [esp + 0x3c], esp
push 0x10cc52a8
mov dword [esp + 0x30], 0x15
mov dword [ecx], eax
call fcn.10992280
mov dword [0x10d51014], eax
mov eax, dword [esp + 0x38]
add esp, 0x10
mov dword [esp + 0x20], ebp
mov edx, dword [0x10d51014]
movzx ecx, word [edx + 0x56]
mov dword [esi], ecx
add esi, 4
mov dword [esp + 0x30], esi
mov edx, dword [edi + reloc.ole32.dll_CoCreateGuid]
cmp edx, dword [eax + reloc.ole32.dll_CoCreateGuid]
jne 0x1098921d
mov ecx, dword [edi + reloc.ole32.dll_CoCreateGuid]
cmp ecx, dword [eax + reloc.ole32.dll_CoCreateGuid]
jne 0x1098921d
mov edx, dword [edi + reloc.ole32.dll_CoCreateGuid]
cmp edx, dword [eax + reloc.ole32.dll_CoCreateGuid]
je 0x1098928f
mov ecx, dword [0x10d5106c]
test ecx, 0x400000
jne 0x1098927c
mov ebx, ecx
or ebx, 0x400000
mov dword [0x10d5106c], ebx
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push ecx
mov dword [ecx], reloc.ole32.dll_CoCreateGuid
mov ecx, esp
xor eax, eax
mov dword [esp + 0x38], esp
push ecx
mov dword [ecx], eax
mov ecx, esp
mov dword [esp + 0x3c], esp
push 0x10cc52a8
mov dword [esp + 0x30], 0x16
mov dword [ecx], eax
call fcn.10992280
mov dword [0x10d51010], eax
mov eax, dword [esp + 0x38]
add esp, 0x10
mov dword [esp + 0x20], ebp
mov ecx, dword [0x10d51010]
movzx edx, word [ecx + 0x56]
mov dword [esi], edx
add esi, 4
mov dword [esp + 0x30], esi
cmp byte [edi + 0x2dd], 2
jne 0x109893e0
mov eax, dword [edi + reloc.ole32.dll_CoCreateGuid]
test ah, 0x10
jne 0x1098934d
mov ecx, dword [edi + reloc.ole32.dll_CoCreateGuid]
test ecx, ecx
js 0x109892bd
test al, al
jns 0x1098934d
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
push eax
mov eax, dword [esp + 0x2c]
push ecx
add eax, 0x8c
lea ecx, [edi + 0x8c]
call fcn.10992e20
add esp, 8
test eax, eax
je 0x1098934d
mov ecx, dword [0x10d5106c]
mov eax, 0x800000
test eax, ecx
jne 0x1098933a
mov ebx, ecx
or ebx, eax
mov dword [0x10d5106c], ebx
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push ecx
mov dword [ecx], reloc.ole32.dll_CoCreateGuid
mov ecx, esp
xor eax, eax
mov dword [esp + 0x38], esp
push ecx
mov dword [ecx], eax
mov ecx, esp
mov dword [esp + 0x3c], esp
push 0x10cc52a8
mov dword [esp + 0x30], 0x17
mov dword [ecx], eax
call fcn.10992280
add esp, 0x10
mov dword [0x10d5100c], eax
mov dword [esp + 0x20], ebp
mov edx, dword [0x10d5100c]
movzx eax, word [edx + 0x56]
mov dword [esi], eax
add esi, 4
mov dword [esp + 0x30], esi
mov eax, dword [edi + reloc.ole32.dll_CoCreateGuid]
test eax, eax
jns 0x109895b1
mov edx, dword [esp + 0x28]
mov cl, byte [edi + 0x2d8]
cmp cl, byte [edx + 0x2d8]
je 0x109895b1
mov ecx, dword [0x10d5106c]
mov eax, 0x1000000
test eax, ecx
jne 0x109893c9
mov ebx, ecx
or ebx, eax
mov dword [0x10d5106c], ebx
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push ecx
mov dword [ecx], reloc.ole32.dll_CoCreateGuid
mov ecx, esp
xor eax, eax
mov dword [esp + 0x38], esp
push ecx
mov dword [ecx], eax
mov ecx, esp
mov dword [esp + 0x3c], esp
push 0x10cc52a8
mov dword [esp + 0x30], 0x18
mov dword [ecx], eax
call fcn.10992280
add esp, 0x10
mov dword [0x10d51008], eax
mov dword [esp + 0x20], ebp
mov eax, dword [0x10d51008]
movzx ecx, word [eax + 0x56]
mov dword [esi], ecx
add esi, 4
mov dword [esp + 0x30], esi
jmp 0x109895b1
mov dl, byte [edi + 0x2d8]
cmp dl, byte [eax + 0x2d8]
je 0x10989459
mov eax, dword [0x10d5106c]
test eax, 0x2000000
jne 0x10989447
mov ebx, eax
or ebx, 0x2000000
mov dword [0x10d5106c], ebx
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push ecx
mov dword [ecx], reloc.ole32.dll_CoCreateGuid
mov ecx, esp
xor eax, eax
mov dword [esp + 0x38], esp
push ecx
mov dword [ecx], eax
mov ecx, esp
mov dword [esp + 0x3c], esp
push 0x10cc52a8
mov dword [esp + 0x30], 0x19
mov dword [ecx], eax
call fcn.10992280
add esp, 0x10
mov dword [0x10d51004], eax
mov dword [esp + 0x20], ebp
mov eax, dword [0x10d51004]
movzx ecx, word [eax + 0x56]
mov dword [esi], ecx
add esi, 4
mov dword [esp + 0x30], esi
cmp byte [edi + 0x2d8], 2
jne 0x109895b1
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x34]
push edx
push eax
mov eax, dword [esp + 0x30]
add eax, 0x8c
lea ecx, [edi + 0x8c]
call fcn.10992e20
add esp, 8
test eax, eax
je 0x109895b1
mov ecx, dword [0x10d5106c]
mov eax, 0x4000000
test eax, ecx
jne 0x109894e7
mov ebx, ecx
or ebx, eax
mov dword [0x10d5106c], ebx
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push ecx
mov dword [ecx], reloc.ole32.dll_CoCreateGuid
mov ecx, esp
xor eax, eax
mov dword [esp + 0x38], esp
push ecx
mov dword [ecx], eax
mov ecx, esp
mov dword [esp + 0x3c], esp
push 0x10cc52a8
mov dword [esp + 0x30], 0x1a
mov dword [ecx], eax
call fcn.10992280
add esp, 0x10
mov dword [0x10d51000], eax
mov dword [esp + 0x20], ebp
mov ecx, dword [0x10d51000]
movzx edx, word [ecx + 0x56]
mov dword [esi], edx
add esi, 4
mov dword [esp + 0x30], esi
jmp 0x109895b1
mov eax, dword [edi + reloc.ole32.dll_CoCreateGuid]
test eax, eax
jns 0x109895b1
mov al, byte [edi + 0x2d9]
cmp al, 2
je 0x10989523
cmp al, 8
je 0x10989523
cmp al, 0xa
jne 0x109895b1
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
push eax
mov eax, dword [esp + 0x2c]
push ecx
add eax, 0xe0
lea ecx, [edi + 0xe0]
call fcn.10992e20
add esp, 8
test eax, eax
je 0x109895b1
mov eax, dword [0x10d5106c]
test esi, eax
jne 0x1098959a
mov edx, eax
or edx, esi
mov dword [0x10d5106c], edx
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push ecx
mov dword [ecx], reloc.ole32.dll_CoCreateGuid
mov ecx, esp
xor eax, eax
mov dword [esp + 0x1c], esp
push ecx
mov dword [ecx], eax
mov ecx, esp
mov dword [esp + 0x20], esp
push 0x10cc52a8
mov dword [esp + 0x30], 0x1b
mov dword [ecx], eax
call fcn.10992280
add esp, 0x10
mov dword [0x10d50ffc], eax
mov dword [esp + 0x20], ebp
mov edx, dword [0x10d50ffc]
movzx ecx, word [edx + 0x56]
mov eax, dword [esp + 0x30]
mov dword [eax], ecx
add eax, 4
mov dword [esp + 0x30], eax
mov eax, dword [edi + reloc.ole32.dll_CoCreateGuid]
test eax, eax
jns 0x10989876
test byte [edi + 0x2f4], 1
je 0x109895d1
test ah, 4
jne 0x10989876
mov ebx, dword [esp + 0x10]
mov edi, dword [ebx + reloc.ole32.dll_CoCreateGuid]
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x28]
mov eax, dword [ecx]
mov esi, dword [edx + reloc.ole32.dll_CoCreateGuid]
push edi
call dword [eax + 0x58]
test eax, eax
je 0x109895f9
xor eax, eax
cmp edi, esi
jmp 0x10989605
mov ecx, dword [esp + 0x38]
xor eax, eax
mov byte [ecx + 0x7e], 1
test esi, esi
setne al
test eax, eax
je 0x1098967b
mov ecx, dword [0x10d5106c]
mov eax, 0x10000000
test eax, ecx
jne 0x10989664
mov edx, ecx
or edx, eax
mov dword [0x10d5106c], edx
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push ecx
mov dword [ecx], reloc.ole32.dll_CoCreateGuid
mov ecx, esp
xor eax, eax
mov dword [esp + 0x1c], esp
push ecx
mov dword [ecx], eax
mov ecx, esp
mov dword [esp + 0x20], esp
push 0x10cc52a8
mov dword [esp + 0x30], 0x1c
mov dword [ecx], eax
call fcn.10992280
add esp, 0x10
mov dword [0x10d50ff8], eax
mov dword [esp + 0x20], ebp
mov edx, dword [0x10d50ff8]
movzx ecx, word [edx + 0x56]
mov eax, dword [esp + 0x30]
mov dword [eax], ecx
add eax, 4
mov dword [esp + 0x30], eax
mov eax, dword [ebx + reloc.ole32.dll_CoCreateGuid]
test eax, eax
je 0x10989876
mov edi, dword [esp + 0x10]
mov ebx, dword [esp + 0x28]
mov edx, dword [edi + reloc.ole32.dll_CoCreateGuid]
cmp edx, dword [ebx + reloc.ole32.dll_CoCreateGuid]
je 0x1098970f
mov ecx, dword [0x10d5106c]
mov eax, 0x20000000
test eax, ecx
jne 0x109896f7
mov esi, ecx
or esi, eax
mov dword [0x10d5106c], esi
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push ecx
mov dword [ecx], reloc.ole32.dll_CoCreateGuid
mov ecx, esp
xor eax, eax
mov dword [esp + 0x1c], esp
push ecx
mov dword [ecx], eax
mov ecx, esp
mov dword [esp + 0x20], esp
push 0x10cc52a8
mov dword [esp + 0x30], 0x1d
mov dword [ecx], eax
call fcn.10992280
add esp, 0x10
mov dword [0x10d50ff4], eax
mov dword [esp + 0x20], ebp
mov eax, dword [0x10d50ff4]
movzx ecx, word [eax + 0x56]
mov esi, dword [esp + 0x30]
mov dword [esi], ecx
add esi, 4
mov dword [esp + 0x30], esi
jmp 0x10989713
mov esi, dword [esp + 0x30]
mov dl, byte [edi + 0x2e3]
cmp dl, byte [ebx + 0x2e3]
je 0x1098978b
mov ecx, dword [0x10d5106c]
mov eax, 0x40000000
test eax, ecx
jne 0x10989779
mov edx, ecx
or edx, eax
mov dword [0x10d5106c], edx
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push ecx
mov dword [ecx], 0xab
mov ecx, esp
xor eax, eax
mov dword [esp + 0x38], esp
push ecx
mov dword [ecx], eax
mov ecx, esp
mov dword [esp + 0x3c], esp
push 0x10cc52a8
mov dword [esp + 0x30], 0x1e
mov dword [ecx], eax
call fcn.10992280
add esp, 0x10
mov dword [0x10d50ff0], eax
mov dword [esp + 0x20], ebp
mov eax, dword [0x10d50ff0]
movzx ecx, word [eax + 0x56]
mov dword [esi], ecx
add esi, 4
mov dword [esp + 0x30], esi
mov dl, byte [edi + 0x2e4]
cmp dl, byte [ebx + 0x2e4]
je 0x10989803
mov ecx, dword [0x10d5106c]
mov eax, 0x80000000
test eax, ecx
jne 0x109897f1
mov edx, ecx
or edx, eax
mov dword [0x10d5106c], edx
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push ecx
mov dword [ecx], reloc.ole32.dll_CoCreateGuid
mov ecx, esp
xor eax, eax
mov dword [esp + 0x38], esp
push ecx
mov dword [ecx], eax
mov ecx, esp
mov dword [esp + 0x3c], esp
push 0x10cc52a8
mov dword [esp + 0x30], 0x1f
mov dword [ecx], eax
call fcn.10992280
add esp, 0x10
mov dword [0x10d50fec], eax
mov dword [esp + 0x20], ebp
mov eax, dword [0x10d50fec]
movzx ecx, word [eax + 0x56]
mov dword [esi], ecx
add esi, 4
mov dword [esp + 0x30], esi
mov dl, byte [edi + 0x2e5]
cmp dl, byte [ebx + 0x2e5]
je 0x10989876
test byte [0x10d50fe8], 1
jne 0x10989860
or dword [0x10d50fe8], 1
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push ecx
mov dword [ecx], reloc.ole32.dll_CoCreateGuid
mov ecx, esp
xor eax, eax
mov dword [esp + 0x1c], esp
push ecx
mov dword [ecx], eax
mov ecx, esp
mov dword [esp + 0x20], esp
push 0x10cc52a8
mov dword [esp + 0x30], 0x20
mov dword [ecx], eax
call fcn.10992280
add esp, 0x10
mov dword [0x10d50fe4], eax
mov dword [esp + 0x20], ebp
mov eax, dword [0x10d50fe4]
movzx ecx, word [eax + 0x56]
mov eax, dword [esp + 0x30]
mov dword [eax], ecx
add eax, 4
mov dword [esp + 0x30], eax
mov edx, dword [esp + 0x10]
test byte [edx + 0x2ec], 4
je 0x1098a6d3
mov edi, dword [esp + 0x28]
mov ecx, dword [edi + reloc.ole32.dll_CoCreateGuid]
mov esi, edx
mov eax, dword [esi + reloc.ole32.dll_CoCreateGuid]
cmp eax, ecx
je 0x10989903
test byte [0x10d50fe8], 2
jne 0x109898ec
or dword [0x10d50fe8], 2
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push ecx
mov dword [ecx], reloc.ole32.dll_CoCreateGuid
mov ecx, esp
xor eax, eax
mov dword [esp + 0x1c], esp
push ecx
mov dword [ecx], eax
mov ecx, esp
mov dword [esp + 0x20], esp
push 0x10cc52a8
mov dword [esp + 0x30], 0x21
mov dword [ecx], eax
call fcn.10992280
add esp, 0x10
mov dword [0x10d50fe0], eax
mov dword [esp + 0x20], ebp
mov ecx, dword [0x10d50fe0]
movzx edx, word [ecx + 0x56]
mov eax, dword [esp + 0x30]
mov dword [eax], edx
add eax, 4
mov dword [esp + 0x30], eax
mov al, byte [esi + 0x2d9]
cmp al, byte [edi + 0x2d9]
je 0x10989977
test byte [0x10d50fe8], 4
jne 0x10989960
or dword [0x10d50fe8], 4
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push ecx
mov dword [ecx], reloc.ole32.dll_CoCreateGuid
mov ecx, esp
xor eax, eax
mov dword [esp + 0x1c], esp
push ecx
mov dword [ecx], eax
mov ecx, esp
mov dword [esp + 0x20], esp
push 0x10cc52a8
mov dword [esp + 0x30], 0x22
mov dword [ecx], eax
call fcn.10992280
add esp, 0x10
mov dword [0x10d50fdc], eax
mov dword [esp + 0x20], ebp
mov ecx, dword [0x10d50fdc]
movzx edx, word [ecx + 0x56]
mov eax, dword [esp + 0x30]
mov dword [eax], edx
add eax, 4
mov dword [esp + 0x30], eax
mov ecx, dword [esp + 0x10]
mov edi, dword [ecx + reloc.ole32.dll_CoCreateGuid]
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x28]
mov edx, dword [ecx]
mov esi, dword [eax + reloc.ole32.dll_CoCreateGuid]
push edi
call dword [edx + 0x58]
test eax, eax
je 0x1098999f
xor eax, eax
cmp edi, esi
jmp 0x109899ab
mov eax, dword [esp + 0x38]
mov byte [eax + 0x7e], 1
xor eax, eax
test esi, esi
setne al
test eax, eax
je 0x10989a1a
test byte [0x10d50fe8], 8
jne 0x10989a01
or dword [0x10d50fe8], 8
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push ecx
mov dword [ecx], reloc.ole32.dll_CoCreateGuid
mov ecx, esp
xor eax, eax
mov dword [esp + 0x1c], esp
push ecx
mov dword [ecx], eax
mov ecx, esp
mov dword [esp + 0x20], esp
push 0x10cc52a8
mov dword [esp + 0x30], 0x23
mov dword [ecx], eax
call fcn.10992280
add esp, 0x10
mov dword [0x10d50fd8], eax
mov dword [esp + 0x20], ebp
mov ecx, dword [0x10d50fd8]
movzx edx, word [ecx + 0x56]
mov ebx, dword [esp + 0x30]
mov dword [ebx], edx
add ebx, 4
mov dword [esp + 0x30], ebx
jmp 0x10989a1e
mov ebx, dword [esp + 0x30]
mov edi, dword [esp + 0x10]
mov eax, dword [edi + reloc.ole32.dll_CoCreateGuid]
test ah, 0x30
je 0x10989b8c
mov esi, dword [esp + 0x28]
mov ecx, dword [esi + reloc.ole32.dll_CoCreateGuid]
xor ecx, eax
test ecx, 0x20000
je 0x10989aa7
test byte [0x10d50fe8], 0x10
jne 0x10989a94
or dword [0x10d50fe8], 0x10
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push ecx
mov dword [ecx], reloc.ole32.dll_CoCreateGuid
mov ecx, esp
xor eax, eax
mov dword [esp + 0x38], esp
push ecx
mov dword [ecx], eax
mov ecx, esp
mov dword [esp + 0x3c], esp
push 0x10cc52a8
mov dword [esp + 0x30], 0x24
mov dword [ecx], eax
call fcn.10992280
add esp, 0x10
mov dword [0x10d50fd4], eax
mov dword [esp + 0x20], ebp
mov edx, dword [0x10d50fd4]
movzx eax, word [edx + 0x56]
mov dword [ebx], eax
add ebx, 4
mov dword [esp + 0x30], ebx
mov ecx, dword [edi + reloc.ole32.dll_CoCreateGuid]
xor ecx, dword [esi + reloc.ole32.dll_CoCreateGuid]
test ch, 0x40
je 0x10989b1a
test byte [0x10d50fe8], 0x20
jne 0x10989b07
or dword [0x10d50fe8], 0x20
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push ecx
mov dword [ecx], reloc.ole32.dll_CoCreateGuid
mov ecx, esp
xor eax, eax
mov dword [esp + 0x38], esp
push ecx
mov dword [ecx], eax
mov ecx, esp
mov dword [esp + 0x3c], esp
push 0x10cc52a8
mov dword [esp + 0x30], 0x25
mov dword [ecx], eax
call fcn.10992280
add esp, 0x10
mov dword [0x10d50fd0], eax
mov dword [esp + 0x20], ebp
mov edx, dword [0x10d50fd0]
movzx eax, word [edx + 0x56]
mov dword [ebx], eax
add ebx, 4
mov dword [esp + 0x30], ebx
mov ecx, dword [edi + reloc.ole32.dll_CoCreateGuid]
xor ecx, dword [esi + reloc.ole32.dll_CoCreateGuid]
test ch, ch
jns 0x10989b8c
test byte [0x10d50fe8], 0x40
jne 0x10989b79
or dword [0x10d50fe8], 0x40
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push ecx
mov dword [ecx], reloc.ole32.dll_CoCreateGuid
mov ecx, esp
xor eax, eax
mov dword [esp + 0x38], esp
push ecx
mov dword [ecx], eax
mov ecx, esp
mov dword [esp + 0x3c], esp
push 0x10cc52a8
mov dword [esp + 0x30], 0x26
mov dword [ecx], eax
call fcn.10992280
add esp, 0x10
mov dword [0x10d50fcc], eax
mov dword [esp + 0x20], ebp
mov edx, dword [0x10d50fcc]
movzx eax, word [edx + 0x56]
mov dword [ebx], eax
add ebx, 4
mov dword [esp + 0x30], ebx
test byte [edi + 0x2ec], 0x40
jne 0x10989cc1
mov ecx, dword [esp + 0x10]
test byte [ecx + 0x2f4], 1
je 0x10989c37
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x34]
mov edi, dword [eax + reloc.ole32.dll_CoCreateGuid]
push edx
mov edx, dword [esp + 0x14]
mov esi, dword [edx + reloc.ole32.dll_CoCreateGuid]
call fcn.10992f70
add esp, 4
test eax, eax
je 0x10989c37
mov al, byte [0x10d50fe8]
test al, al
js 0x10989c25
or dword [0x10d50fe8], 0x80
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push ecx
mov dword [ecx], reloc.ole32.dll_CoCreateGuid
mov ecx, esp
xor eax, eax
mov dword [esp + 0x38], esp
push ecx
mov dword [ecx], eax
mov ecx, esp
mov dword [esp + 0x3c], esp
push 0x10cc52a8
mov dword [esp + 0x30], 0x27
mov dword [ecx], eax
call fcn.10992280
add esp, 0x10
mov dword [0x10d50fc8], eax
mov dword [esp + 0x20], ebp
mov eax, dword [0x10d50fc8]
movzx ecx, word [eax + 0x56]
mov dword [ebx], ecx
add ebx, 4
mov dword [esp + 0x30], ebx
mov eax, dword [esp + 0x10]
test byte [eax + 0x2ec], 0x10
je 0x10989cc1
mov edx, dword [eax + reloc.ole32.dll_CoCreateGuid]
mov eax, dword [esp + 0x28]
cmp edx, dword [eax + reloc.ole32.dll_CoCreateGuid]
je 0x10989cc1
mov ecx, dword [0x10d50fe8]
mov eax, 0x100
test eax, ecx
jne 0x10989cae
mov edx, ecx
or edx, eax
mov dword [0x10d50fe8], edx
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push ecx
mov dword [ecx], reloc.ole32.dll_CoCreateGuid
mov ecx, esp
xor eax, eax
mov dword [esp + 0x38], esp
push ecx
mov dword [ecx], eax
mov ecx, esp
mov dword [esp + 0x3c], esp
push 0x10cc52a8
mov dword [esp + 0x30], 0x28
mov dword [ecx], eax
call fcn.10992280
add esp, 0x10
mov dword [0x10d50fc4], eax
mov dword [esp + 0x20], ebp
mov ecx, dword [0x10d50fc4]
movzx edx, word [ecx + 0x56]
mov dword [ebx], edx
add ebx, 4
mov dword [esp + 0x30], ebx
mov ecx, dword [esp + 0x10]
mov al, byte [ecx + 0x2d9]
cmp al, 2
jne 0x10989e2b
test byte [ecx + 0x2f4], 4
jne 0x10989d74
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x34]
mov edi, dword [edx + reloc.ole32.dll_CoCreateGuid]
push eax
mov eax, dword [esp + 0x14]
mov esi, dword [eax + reloc.ole32.dll_CoCreateGuid]
call fcn.10992f70
add esp, 4
test eax, eax
je 0x10989d74
mov ecx, dword [0x10d50fe8]
mov eax, 0x200
test eax, ecx
jne 0x10989d61
mov edx, ecx
or edx, eax
mov dword [0x10d50fe8], edx
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push ecx
mov dword [ecx], reloc.ole32.dll_CoCreateGuid
mov ecx, esp
xor eax, eax
mov dword [esp + 0x38], esp
push ecx
mov dword [ecx], eax
mov ecx, esp
mov dword [esp + 0x3c], esp
push 0x10cc52a8
mov dword [esp + 0x30], 0x29
mov dword [ecx], eax
call fcn.10992280
add esp, 0x10
mov dword [0x10d50fc0], eax
mov dword [esp + 0x20], ebp
mov ecx, dword [0x10d50fc0]
movzx edx, word [ecx + 0x56]
mov dword [ebx], edx
add ebx, 4
mov dword [esp + 0x30], ebx
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + reloc.ole32.dll_CoCreateGuid]
mov esi, 0x400
test esi, ecx
je 0x10989ed9
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x34]
push ecx
mov ecx, dword [eax + reloc.ole32.dll_CoCreateGuid]
push edx
mov edx, dword [eax + reloc.ole32.dll_CoCreateGuid]
mov eax, dword [esp + 0x18]
push ecx
mov ecx, dword [eax + reloc.ole32.dll_CoCreateGuid]
push edx
mov edx, dword [eax + reloc.ole32.dll_CoCreateGuid]
push ecx
push edx
call fcn.10992f40
add esp, 0x18
test eax, eax
je 0x10989ed9
mov eax, dword [0x10d50fe8]
test esi, eax
jne 0x10989e1b
mov edx, eax
or edx, esi
mov dword [0x10d50fe8], edx
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push ecx
mov dword [ecx], reloc.ole32.dll_CoCreateGuid
mov ecx, esp
xor eax, eax
mov dword [esp + 0x38], esp
push ecx
mov dword [ecx], eax
mov ecx, esp
mov dword [esp + 0x3c], esp
push 0x10cc52a8
mov dword [esp + 0x30], 0x2a
mov dword [ecx], eax
call fcn.10992280
add esp, 0x10
mov dword [0x10d50fbc], eax
mov dword [esp + 0x20], ebp
mov eax, dword [0x10d50fbc]
movzx ecx, word [eax + 0x56]
mov dword [ebx], ecx
jmp 0x10989ed2
cmp al, 8
jne 0x10989ed9
mov edx, dword [esp + 0x10]
mov eax, dword [edx + reloc.ole32.dll_CoCreateGuid]
test eax, eax
jns 0x10989ed9
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x34]
mov edi, dword [edx + reloc.ole32.dll_CoCreateGuid]
push eax
mov eax, dword [esp + 0x14]
mov esi, dword [eax + reloc.ole32.dll_CoCreateGuid]
call fcn.10992f70
add esp, 4
test eax, eax
je 0x10989ed9
mov ecx, dword [0x10d50fe8]
mov eax, 0x800
test eax, ecx
jne 0x10989ec6
mov edx, ecx
or edx, eax
mov dword [0x10d50fe8], edx
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push ecx
mov dword [ecx], 0x92
mov ecx, esp
xor eax, eax
mov dword [esp + 0x38], esp
push ecx
mov dword [ecx], eax
mov ecx, esp
mov dword [esp + 0x3c], esp
push 0x10cc52a8
mov dword [esp + 0x30], 0x2b
mov dword [ecx], eax
call fcn.10992280
add esp, 0x10
mov dword [0x10d50fb8], eax
mov dword [esp + 0x20], ebp
mov ecx, dword [0x10d50fb8]
movzx edx, word [ecx + 0x56]
mov dword [ebx], edx
add ebx, 4
mov dword [esp + 0x30], ebx
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x28]
mov al, byte [edi + 0x2d1]
cmp al, byte [esi + 0x2d1]
je 0x10989f5a
mov ecx, dword [0x10d50fe8]
mov eax, 0x1000
test eax, ecx
jne 0x10989f47
mov edx, ecx
or edx, eax
mov dword [0x10d50fe8], edx
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push ecx
mov dword [ecx], reloc.ole32.dll_CoCreateGuid
mov ecx, esp
xor eax, eax
mov dword [esp + 0x38], esp
push ecx
mov dword [ecx], eax
mov ecx, esp
mov dword [esp + 0x3c], esp
push 0x10cc52a8
mov dword [esp + 0x30], 0x2c
mov dword [ecx], eax
call fcn.10992280
add esp, 0x10
mov dword [0x10d50fb4], eax
mov dword [esp + 0x20], ebp
mov ecx, dword [0x10d50fb4]
movzx edx, word [ecx + 0x56]
mov dword [ebx], edx
add ebx, 4
mov dword [esp + 0x30], ebx
mov al, byte [edi + 0x2d1]
test al, al
je 0x1098a423
mov al, byte [edi + 0x2d2]
cmp al, byte [esi + 0x2d2]
je 0x10989fe1
mov ecx, dword [0x10d50fe8]
mov eax, 0x2000
test eax, ecx
jne 0x10989fce
mov edx, ecx
or edx, eax
mov dword [0x10d50fe8], edx
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push ecx
mov dword [ecx], reloc.ole32.dll_CoCreateGuid
mov ecx, esp
xor eax, eax
mov dword [esp + 0x38], esp
push ecx
mov dword [ecx], eax
mov ecx, esp
mov dword [esp + 0x3c], esp
push 0x10cc52a8
mov dword [esp + 0x30], 0x2d
mov dword [ecx], eax
call fcn.10992280
add esp, 0x10
mov dword [0x10d50fb0], eax
mov dword [esp + 0x20], ebp
mov ecx, dword [0x10d50fb0]
movzx edx, word [ecx + 0x56]
mov dword [ebx], edx
add ebx, 4
mov dword [esp + 0x30], ebx
mov eax, dword [edi + 0xf8]
cmp eax, dword [esi + 0xf8]
je 0x1098a05a
mov ecx, dword [0x10d50fe8]
mov eax, 0x4000
test eax, ecx
jne 0x1098a047
mov edx, ecx
or edx, eax
mov dword [0x10d50fe8], edx
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push ecx
mov dword [ecx], reloc.ole32.dll_CoCreateGuid
mov ecx, esp
xor eax, eax
mov dword [esp + 0x38], esp
push ecx
mov dword [ecx], eax
mov ecx, esp
mov dword [esp + 0x3c], esp
push 0x10cc52a8
mov dword [esp + 0x30], 0x2e
mov dword [ecx], eax
call fcn.10992280
add esp, 0x10
mov dword [0x10d50fac], eax
mov dword [esp + 0x20], ebp
mov ecx, dword [0x10d50fac]
movzx edx, word [ecx + 0x56]
mov dword [ebx], edx
add ebx, 4
mov dword [esp + 0x30], ebx
mov al, byte [edi + 0x2d3]
cmp al, byte [esi + 0x2d3]
je 0x1098a0d3
mov ecx, dword [0x10d50fe8]
mov eax, 0x8000
test eax, ecx
jne 0x1098a0c0
mov edx, ecx
or edx, eax
mov dword [0x10d50fe8], edx
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push ecx
mov dword [ecx], reloc.ole32.dll_CoCreateGuid
mov ecx, esp
xor eax, eax
mov dword [esp + 0x38], esp
push ecx
mov dword [ecx], eax
mov ecx, esp
mov dword [esp + 0x3c], esp
push 0x10cc52a8
mov dword [esp + 0x30], 0x2f
mov dword [ecx], eax
call fcn.10992280
add esp, 0x10
mov dword [0x10d50fa8], eax
mov dword [esp + 0x20], ebp
mov ecx, dword [0x10d50fa8]
movzx edx, word [ecx + 0x56]
mov dword [ebx], edx
add ebx, 4
mov dword [esp + 0x30], ebx
mov al, byte [edi + 0x2d4]
cmp al, byte [esi + 0x2d4]
je 0x1098a14c
mov ecx, dword [0x10d50fe8]
mov eax, 0x10000
test eax, ecx
jne 0x1098a139
mov edx, ecx
or edx, eax
mov dword [0x10d50fe8], edx
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push ecx
mov dword [ecx], reloc.ole32.dll_CoCreateGuid
mov ecx, esp
xor eax, eax
mov dword [esp + 0x38], esp
push ecx
mov dword [ecx], eax
mov ecx, esp
mov dword [esp + 0x3c], esp
push 0x10cc52a8
mov dword [esp + 0x30], 0x30
mov dword [ecx], eax
call fcn.10992280
add esp, 0x10
mov dword [0x10d50fa4], eax
mov dword [esp + 0x20], ebp
mov ecx, dword [0x10d50fa4]
movzx edx, word [ecx + 0x56]
mov dword [ebx], edx
add ebx, 4
mov dword [esp + 0x30], ebx
mov eax, dword [edi + 0xfc]
cmp eax, dword [esi + 0xfc]
je 0x1098a1c6
mov eax, dword [0x10d50fe8]
test eax, 0x20000
jne 0x1098a1b3
mov edx, eax
or edx, 0x20000
mov dword [0x10d50fe8], edx
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push ecx
mov dword [ecx], reloc.ole32.dll_CoCreateGuid
mov ecx, esp
xor eax, eax
mov dword [esp + 0x38], esp
push ecx
mov dword [ecx], eax
mov ecx, esp
mov dword [esp + 0x3c], esp
push 0x10cc52a8
mov dword [esp + 0x30], 0x31
mov dword [ecx], eax
call fcn.10992280
add esp, 0x10
mov dword [0x10d50fa0], eax
mov dword [esp + 0x20], ebp
mov ecx, dword [0x10d50fa0]
movzx edx, word [ecx + 0x56]
mov dword [ebx], edx
add ebx, 4
mov dword [esp + 0x30], ebx
mov al, byte [edi + 0x2d5]
cmp al, byte [esi + 0x2d5]
je 0x1098a23f
mov ecx, dword [0x10d50fe8]
mov eax, 0x40000
test eax, ecx
jne 0x1098a22c
mov edx, ecx
or edx, eax
mov dword [0x10d50fe8], edx
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push ecx
mov dword [ecx], reloc.ole32.dll_CoCreateGuid
mov ecx, esp
xor eax, eax
mov dword [esp + 0x38], esp
push ecx
mov dword [ecx], eax
mov ecx, esp
mov dword [esp + 0x3c], esp
push 0x10cc52a8
mov dword [esp + 0x30], 0x32
mov dword [ecx], eax
call fcn.10992280
add esp, 0x10
mov dword [0x10d50f9c], eax
mov dword [esp + 0x20], ebp
mov ecx, dword [0x10d50f9c]
movzx edx, word [ecx + 0x56]
mov dword [ebx], edx
add ebx, 4
mov dword [esp + 0x30], ebx
mov al, byte [edi + 0x2d6]
cmp al, byte [esi + 0x2d6]
je 0x1098a2b8
mov ecx, dword [0x10d50fe8]
mov eax, 0x80000
test eax, ecx
jne 0x1098a2a5
mov edx, ecx
or edx, eax
mov dword [0x10d50fe8], edx
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push ecx
mov dword [ecx], reloc.ole32.dll_CoCreateGuid
mov ecx, esp
xor eax, eax
mov dword [esp + 0x38], esp
push ecx
mov dword [ecx], eax
mov ecx, esp
mov dword [esp + 0x3c], esp
push 0x10cc52a8
mov dword [esp + 0x30], 0x33
mov dword [ecx], eax
call fcn.10992280
add esp, 0x10
mov dword [0x10d50f98], eax
mov dword [esp + 0x20], ebp
mov ecx, dword [0x10d50f98]
movzx edx, word [ecx + 0x56]
mov dword [ebx], edx
add ebx, 4
mov dword [esp + 0x30], ebx
mov eax, dword [edi + reloc.ole32.dll_CoCreateGuid]
cmp eax, dword [esi + reloc.ole32.dll_CoCreateGuid]
je 0x1098a331
mov ecx, dword [0x10d50fe8]
mov eax, 0x100000
test eax, ecx
jne 0x1098a31e
mov edx, ecx
or edx, eax
mov dword [0x10d50fe8], edx
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push ecx
mov dword [ecx], reloc.ole32.dll_CoCreateGuid
mov ecx, esp
xor eax, eax
mov dword [esp + 0x38], esp
push ecx
mov dword [ecx], eax
mov ecx, esp
mov dword [esp + 0x3c], esp
push 0x10cc52a8
mov dword [esp + 0x30], 0x34
mov dword [ecx], eax
call fcn.10992280
add esp, 0x10
mov dword [0x10d50f94], eax
mov dword [esp + 0x20], ebp
mov ecx, dword [0x10d50f94]
movzx edx, word [ecx + 0x56]
mov dword [ebx], edx
add ebx, 4
mov dword [esp + 0x30], ebx
mov eax, dword [edi + reloc.ole32.dll_CoCreateGuid]
cmp eax, dword [esi + reloc.ole32.dll_CoCreateGuid]
je 0x1098a3aa
mov ecx, dword [0x10d50fe8]
mov eax, 0x200000
test eax, ecx
jne 0x1098a397
mov edx, ecx
or edx, eax
mov dword [0x10d50fe8], edx
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push ecx
mov dword [ecx], reloc.ole32.dll_CoCreateGuid
mov ecx, esp
xor eax, eax
mov dword [esp + 0x38], esp
push ecx
mov dword [ecx], eax
mov ecx, esp
mov dword [esp + 0x3c], esp
push 0x10cc52a8
mov dword [esp + 0x30], 0x35
mov dword [ecx], eax
call fcn.10992280
add esp, 0x10
mov dword [0x10d50f90], eax
mov dword [esp + 0x20], ebp
mov ecx, dword [0x10d50f90]
movzx edx, word [ecx + 0x56]
mov dword [ebx], edx
add ebx, 4
mov dword [esp + 0x30], ebx
mov eax, dword [edi + reloc.ole32.dll_CoCreateGuid]
cmp eax, dword [esi + reloc.ole32.dll_CoCreateGuid]
je 0x1098a423
mov ecx, dword [0x10d50fe8]
mov eax, 0x400000
test eax, ecx
jne 0x1098a410
mov edx, ecx
or edx, eax
mov dword [0x10d50fe8], edx
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push ecx
mov dword [ecx], reloc.ole32.dll_CoCreateGuid
mov ecx, esp
xor eax, eax
mov dword [esp + 0x38], esp
push ecx
mov dword [ecx], eax
mov ecx, esp
mov dword [esp + 0x3c], esp
push 0x10cc52a8
mov dword [esp + 0x30], 0x36
mov dword [ecx], eax
call fcn.10992280
add esp, 0x10
mov dword [0x10d50f8c], eax
mov dword [esp + 0x20], ebp
mov ecx, dword [0x10d50f8c]
movzx edx, word [ecx + 0x56]
mov dword [ebx], edx
add ebx, 4
mov dword [esp + 0x30], ebx
mov eax, dword [esi + reloc.ole32.dll_CoCreateGuid]
xor eax, dword [edi + reloc.ole32.dll_CoCreateGuid]
test al, 4
je 0x1098a49e
mov ecx, dword [0x10d50fe8]
mov eax, 0x800000
test eax, ecx
jne 0x1098a48b
mov edx, ecx
or edx, eax
mov dword [0x10d50fe8], edx
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push ecx
mov dword [ecx], reloc.ole32.dll_CoCreateGuid
mov ecx, esp
xor eax, eax
mov dword [esp + 0x38], esp
push ecx
mov dword [ecx], eax
mov ecx, esp
mov dword [esp + 0x3c], esp
push 0x10cc52a8
mov dword [esp + 0x30], 0x37
mov dword [ecx], eax
call fcn.10992280
add esp, 0x10
mov dword [0x10d50f88], eax
mov dword [esp + 0x20], ebp
mov ecx, dword [0x10d50f88]
movzx edx, word [ecx + 0x56]
mov dword [ebx], edx
add ebx, 4
mov dword [esp + 0x30], ebx
mov eax, dword [esi + reloc.ole32.dll_CoCreateGuid]
xor eax, dword [edi + reloc.ole32.dll_CoCreateGuid]
test eax, 0x20000
je 0x1098a51c
mov ecx, dword [0x10d50fe8]
mov eax, 0x1000000
test eax, ecx
jne 0x1098a509
mov esi, ecx
or esi, eax
mov dword [0x10d50fe8], esi
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push ecx
mov dword [ecx], reloc.ole32.dll_CoCreateGuid
mov ecx, esp
xor eax, eax
mov dword [esp + 0x38], esp
push ecx
mov dword [ecx], eax
mov ecx, esp
mov dword [esp + 0x3c], esp
push 0x10cc52a8
mov dword [esp + 0x30], 0x38
mov dword [ecx], eax
call fcn.10992280
add esp, 0x10
mov dword [0x10d50f84], eax
mov dword [esp + 0x20], ebp
mov ecx, dword [0x10d50f84]
movzx edx, word [ecx + 0x56]
mov dword [ebx], edx
add ebx, 4
mov dword [esp + 0x30], ebx
test dword [edi + reloc.ole32.dll_CoCreateGuid], 0x20000
je 0x1098a6d3
mov ecx, dword [esp + 0x10]
mov edi, dword [ecx + reloc.ole32.dll_CoCreateGuid]
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x28]
mov edx, dword [ecx]
mov esi, dword [eax + reloc.ole32.dll_CoCreateGuid]
push edi
call dword [edx + 0x58]
test eax, eax
je 0x1098a554
xor eax, eax
cmp edi, esi
jmp 0x1098a560
mov eax, dword [esp + 0x38]
mov byte [eax + 0x7e], 1
xor eax, eax
test esi, esi
setne al
test eax, eax
je 0x1098a5d2
mov ecx, dword [0x10d50fe8]
mov eax, 0x2000000
test eax, ecx
jne 0x1098a5bf
mov edx, ecx
or edx, eax
mov dword [0x10d50fe8], edx
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push ecx
mov dword [ecx], reloc.ole32.dll_CoCreateGuid
mov ecx, esp
xor eax, eax
mov dword [esp + 0x38], esp
push ecx
mov dword [ecx], eax
mov ecx, esp
mov dword [esp + 0x3c], esp
push 0x10cc52a8
mov dword [esp + 0x30], 0x39
mov dword [ecx], eax
call fcn.10992280
add esp, 0x10
mov dword [0x10d50f80], eax
mov dword [esp + 0x20], ebp
mov ecx, dword [0x10d50f80]
movzx edx, word [ecx + 0x56]
mov dword [ebx], edx
add ebx, 4
mov dword [esp + 0x30], ebx
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + reloc.ole32.dll_CoCreateGuid]
mov edx, dword [esp + 0x28]
cmp ecx, dword [edx + reloc.ole32.dll_CoCreateGuid]
je 0x1098a652
mov ecx, dword [0x10d50fe8]
mov eax, 0x4000000
test eax, ecx
jne 0x1098a640
mov edx, ecx
or edx, eax
mov dword [0x10d50fe8], edx
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push ecx
mov dword [ecx], reloc.ole32.dll_CoCreateGuid
mov ecx, esp
xor eax, eax
mov dword [esp + 0x38], esp
push ecx
mov dword [ecx], eax
mov ecx, esp
mov dword [esp + 0x3c], esp
push 0x10cc52a8
mov dword [esp + 0x30], 0x3a
mov dword [ecx], eax
call fcn.10992280
add esp, 0x10
mov dword [0x10d50f7c], eax
mov dword [esp + 0x20], ebp
mov eax, dword [0x10d50f7c]
movzx ecx, word [eax + 0x56]
mov dword [ebx], ecx
add ebx, 4
mov dword [esp + 0x30], ebx
mov edx, dword [esp + 0x10]
mov al, byte [edx + 0x2dc]
mov ecx, dword [esp + 0x28]
cmp al, byte [ecx + 0x2dc]
je 0x1098a6d3
mov ecx, dword [0x10d50fe8]
mov eax, 0x8000000
test eax, ecx
jne 0x1098a6c0
mov edx, ecx
or edx, eax
mov dword [0x10d50fe8], edx
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push ecx
mov dword [ecx], reloc.ole32.dll_CoCreateGuid
mov ecx, esp
xor eax, eax
mov dword [esp + 0x38], esp
push ecx
mov dword [ecx], eax
mov ecx, esp
mov dword [esp + 0x3c], esp
push 0x10cc52a8
mov dword [esp + 0x30], 0x3b
mov dword [ecx], eax
call fcn.10992280
add esp, 0x10
mov dword [0x10d50f78], eax
mov dword [esp + 0x20], ebp
mov edx, dword [0x10d50f78]
movzx eax, word [edx + 0x56]
mov dword [ebx], eax
add ebx, 4
mov dword [esp + 0x30], ebx
mov edi, dword [esp + 0x10]
mov eax, dword [edi + reloc.ole32.dll_CoCreateGuid]
test eax, eax
jns 0x1098a94a
mov ebx, dword [esp + 0x28]
mov ecx, dword [ebx + reloc.ole32.dll_CoCreateGuid]
xor ecx, dword [edi + reloc.ole32.dll_CoCreateGuid]
test ch, 0x10
je 0x1098a76b
mov ecx, dword [0x10d50fe8]
mov eax, 0x10000000
test eax, ecx
jne 0x1098a752
mov esi, ecx
or esi, eax
mov dword [0x10d50fe8], esi
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push ecx
mov dword [ecx], reloc.ole32.dll_CoCreateGuid
mov ecx, esp
xor eax, eax
mov dword [esp + 0x30], esp
push ecx
mov dword [ecx], eax
mov ecx, esp
mov dword [esp + 0x34], esp
push 0x10cc52a8
mov dword [esp + 0x30], 0x3c
mov dword [ecx], eax
call fcn.10992280
add esp, 0x10
mov dword [0x10d50f74], eax
mov dword [esp + 0x20], ebp
mov edx, dword [0x10d50f74]
movzx eax, word [edx + 0x56]
mov esi, dword [esp + 0x30]
mov dword [esi], eax
add esi, 4
mov dword [esp + 0x30], esi
jmp 0x1098a76f
mov esi, dword [esp + 0x30]
mov cl, byte [edi + 0x2de]
cmp cl, byte [ebx + 0x2de]
je 0x1098a7e8
mov ecx, dword [0x10d50fe8]
mov eax, 0x20000000
test eax, ecx
jne 0x1098a7d5
mov edx, ecx
or edx, eax
mov dword [0x10d50fe8], edx
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push ecx
mov dword [ecx], reloc.ole32.dll_CoCreateGuid
mov ecx, esp
xor eax, eax
mov dword [esp + 0x38], esp
push ecx
mov dword [ecx], eax
mov ecx, esp
mov dword [esp + 0x3c], esp
push 0x10cc52a8
mov dword [esp + 0x30], 0x3d
mov dword [ecx], eax
call fcn.10992280
add esp, 0x10
mov dword [0x10d50f70], eax
mov dword [esp + 0x20], ebp
mov edx, dword [0x10d50f70]
movzx eax, word [edx + 0x56]
mov dword [esi], eax
add esi, 4
mov dword [esp + 0x30], esi
mov cl, byte [edi + 0x2dd]
cmp cl, byte [ebx + 0x2dd]
je 0x1098a861
mov ecx, dword [0x10d50fe8]
mov eax, 0x40000000
test eax, ecx
jne 0x1098a84e
mov edx, ecx
or edx, eax
mov dword [0x10d50fe8], edx
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push ecx
mov dword [ecx], reloc.ole32.dll_CoCreateGuid
mov ecx, esp
xor eax, eax
mov dword [esp + 0x38], esp
push ecx
mov dword [ecx], eax
mov ecx, esp
mov dword [esp + 0x3c], esp
push 0x10cc52a8
mov dword [esp + 0x30], 0x3e
mov dword [ecx], eax
call fcn.10992280
add esp, 0x10
mov dword [0x10d50f6c], eax
mov dword [esp + 0x20], ebp
mov edx, dword [0x10d50f6c]
movzx eax, word [edx + 0x56]
mov dword [esi], eax
add esi, 4
mov dword [esp + 0x30], esi
mov ecx, dword [ebx + reloc.ole32.dll_CoCreateGuid]
xor ecx, dword [edi + reloc.ole32.dll_CoCreateGuid]
test cl, 1
je 0x1098a8db
mov eax, dword [0x10d50fe8]
test eax, eax
js 0x1098a8c8
mov edx, eax
or edx, 0x80000000
mov dword [0x10d50fe8], edx
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push ecx
mov dword [ecx], reloc.ole32.dll_CoCreateGuid
mov ecx, esp
xor eax, eax
mov dword [esp + 0x38], esp
push ecx
mov dword [ecx], eax
mov ecx, esp
mov dword [esp + 0x3c], esp
push 0x10cc52a8
mov dword [esp + 0x30], 0x3f
mov dword [ecx], eax
call fcn.10992280
add esp, 0x10
mov dword [0x10d50f68], eax
mov dword [esp + 0x20], ebp
mov edx, dword [0x10d50f68]
movzx eax, word [edx + 0x56]
mov dword [esi], eax
add esi, 4
mov dword [esp + 0x30], esi
mov ecx, dword [ebx + reloc.ole32.dll_CoCreateGuid]
xor ecx, dword [edi + reloc.ole32.dll_CoCreateGuid]
test ch, 1
je 0x1098a94a
test byte [0x10d50f64], 1
jne 0x1098a937
or dword [0x10d50f64], 1
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push ecx
mov dword [ecx], reloc.ole32.dll_CoCreateGuid
mov ecx, esp
xor eax, eax
mov dword [esp + 0x38], esp
push ecx
mov dword [ecx], eax
mov ecx, esp
mov dword [esp + 0x3c], esp
push 0x10cc52a8
mov dword [esp + 0x30], 0x40
mov dword [ecx], eax
call fcn.10992280
add esp, 0x10
mov dword [0x10d50f60], eax
mov edx, dword [0x10d50f60]
movzx eax, word [edx + 0x56]
mov dword [esi], eax
add esi, 4
mov dword [esp + 0x30], esi
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x18]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x14
ret 0x14