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

Disassembly:
sub esp, 0xe4
push ebx
push ebp
mov ebp, dword [esp + 0xf0]
push esi
push edi
mov edi, dword [ebp]
mov esi, eax
mov eax, dword [edi + reloc.ole32.dll_CoCreateGuid]
mov ebx, dword [eax + 0x64]
mov ecx, dword [esi + 0x10]
xor edx, edx
cmp ebx, edx
mov dword [esp + 0x38], edi
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], edx
mov dword [esp + 0x34], ecx
je 0x10a4e02e
test dword [edi + reloc.ole32.dll_CoCreateGuid], 0x10000000
mov dword [esp + 0x2c], edx
je 0x10a4cefd
mov ecx, dword [edi + reloc.ole32.dll_CoCreateGuid]
cmp ecx, edx
je 0x10a4cefd
call fcn.10986200
jmp 0x10a4ceff
mov eax, edi
test byte [eax + 0x2ef], 1
jne 0x10a4d157
mov edx, dword [esp + 0xfc]
mov eax, dword [edx + 4]
mov eax, dword [eax + 0x30]
test eax, eax
je 0x10a4d157
cmp dword [eax + reloc.ole32.dll_CoCreateGuid], 5
jne 0x10a4d157
mov edi, dword [edi + reloc.ole32.dll_CoCreateGuid]
test edi, edi
je 0x10a4cff4
cmp dword [edi + 0x3c], ebx
jne 0x10a4cff4
mov eax, dword [edi + 0x2c]
xor ebp, ebp
test eax, eax
jle 0x10a4cf73
mov ecx, dword [edi + 0x28]
lea eax, [ebx + 7]
cdq
and edx, 7
add eax, edx
sar eax, 3
add ecx, 8
cmp dword [ecx], eax
jne 0x10a4cff4
mov edx, dword [edi + 0x2c]
inc ebp
add ecx, 0x14
cmp ebp, edx
jl 0x10a4cf60
mov eax, edi
mov ecx, dword [eax + 0x2c]
xor edi, edi
test ecx, ecx
mov dword [esp + 0x14], eax
jle 0x10a4cff4
mov ebp, eax
add ebp, 0x28
mov ecx, dword [ebp]
lea eax, [edi + edi*4]
lea ebx, [ecx + eax*4]
mov ecx, dword [ebx]
test ecx, ecx
jne 0x10a4cfaf
push 1
push ebp
call fcn.109a4720
lea eax, [edi - 1]
xor edx, edx
test eax, eax
setge dl
dec edx
and edx, eax
mov edi, edx
jmp 0x10a4cfcc
call fcn.10990cf0
test eax, eax
je 0x10a4cfc2
test byte [eax + 0x34], 3
jne 0x10a4cfc2
xor eax, eax
jmp 0x10a4cfc7
mov eax, 1
cmp eax, dword [ebx + 0x10]
je 0x10a4cfda
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x2c]
inc edi
cmp edi, ecx
jl 0x10a4cf87
jmp 0x10a4cff4
mov ecx, dword [esp + 0xf8]
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
push ecx
push edx
push eax
call fcn.10a4ca50
add esp, 0xc
mov ebp, dword [esp + 0xf8]
mov eax, dword [ebp + 0xb0]
fld dword [ebp + 0xb4]
mov ecx, dword [ebp + 0xa8]
mov edx, dword [ebp + 0xac]
mov dword [esp + 0x44], eax
mov eax, dword [ebp]
mov dword [esp + 0x3c], ecx
test byte [eax + 0x2e8], 4
mov dword [esp + 0x40], edx
je 0x10a4d03f
test dword [eax + reloc.ole32.dll_CoCreateGuid], 0x8000000
jne 0x10a4d03f
fstp st(0)
fld dword [0x10c10a44]
mov ecx, dword [eax + reloc.ole32.dll_CoCreateGuid]
mov edx, dword [esp + 0x1c]
cmp ecx, dword [edx + 0x54]
je 0x10a4d097
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x40]
sub esp, 0x10
mov eax, esp
push 0
fstp dword [eax + 0xc]
mov dword [eax], ecx
mov ecx, dword [esp + 0x58]
push 0
push 1
mov dword [eax + 4], edx
mov dword [eax + 8], ecx
mov ecx, dword [esi + 0x14]
mov edx, dword [ecx]
push 1
push esi
call dword [edx + 0x14]
mov eax, dword [ebp + 0xb8]
mov ecx, dword [esi + 0x14]
mov edx, dword [ecx]
push eax
push esi
call dword [edx + 0x10]
mov edi, dword [esp + reloc.ole32.dll_CoCreateGuid]
jmp 0x10a4d11e
mov cl, byte [esi + 0xc]
mov edi, dword [esp + reloc.ole32.dll_CoCreateGuid]
xor edx, edx
test cl, cl
setne dl
test edx, edx
jne 0x10a4d0d0
test edi, edi
mov eax, edi
je 0x10a4d0d0
mov ecx, dword [esp + 0x14]
test ecx, ecx
je 0x10a4d0cb
mov ebx, dword [eax]
test byte [ebx + 0x34], 3
jne 0x10a4d0cb
mov eax, dword [eax + 4]
test eax, eax
jne 0x10a4d0b6
jmp 0x10a4d0d0
mov edx, 1
mov ecx, dword [esp + 0x3c]
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
fstp dword [eax + 0xc]
mov ecx, dword [esp + 0x50]
push 0
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x58]
push 0
push 1
mov dword [eax + 8], ecx
mov ecx, dword [esi + 0x14]
mov eax, dword [ecx]
push edx
push esi
call dword [eax + 0x14]
mov ecx, dword [esi + 0x14]
mov edx, dword [ecx]
mov byte [esp + 0x18], 0
mov byte [esp + 0x19], 0
mov byte [esp + 0x1a], 0
mov byte [esp + 0x1b], 0xff
mov eax, dword [esp + 0x18]
push eax
push esi
call dword [edx + 0x10]
test edi, edi
je 0x10a4d1bc
mov ebx, dword [esp + 0x2c]
lea ebx, [ebx]
mov eax, dword [esp + 0x14]
test eax, eax
je 0x10a4d140
mov ecx, dword [edi]
test byte [ecx + 0x34], 3
je 0x10a4d14e
mov eax, dword [edi]
mov ecx, dword [esi + 0x14]
mov edx, dword [ecx]
push eax
push ebx
push esi
call dword [edx + 0xc]
inc ebx
mov edi, dword [edi + 4]
test edi, edi
jne 0x10a4d130
jmp 0x10a4d1bc
fld dword [ebp + 0xa8]
mov ecx, dword [ebp + 0xb0]
fld dword [ebp + 0xac]
mov edx, dword [ebp + 0xb4]
sub esp, 0x10
fxch st(1)
mov eax, esp
push 0
fstp dword [eax]
push 0
push 1
fstp dword [eax + 4]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
mov dword [esp + 0x70], ecx
mov ecx, dword [esi + 0x14]
mov eax, dword [ecx]
push 1
push esi
mov dword [esp + 0x7c], edx
call dword [eax + 0x14]
mov ecx, dword [esi + 0x14]
mov edx, dword [ecx]
mov byte [esp + 0x18], 0xff
mov byte [esp + 0x19], 0xff
mov byte [esp + 0x1a], 0xff
mov byte [esp + 0x1b], 0xff
mov eax, dword [esp + 0x18]
push eax
push esi
call dword [edx + 0x10]
mov eax, dword [esp + 0x34]
cmp eax, 1
jne 0x10a4d1e7
mov eax, dword [ebp]
mov ecx, dword [eax + reloc.ole32.dll_CoCreateGuid]
mov eax, dword [eax + reloc.ole32.dll_CoCreateGuid]
mov edx, dword [esi]
push ecx
shr eax, 0xa
and eax, 1
push eax
push 0
mov ecx, esi
call dword [edx + 0x38]
jmp 0x10a4d24b
cmp eax, 3
jne 0x10a4d1ff
mov eax, dword [ebp]
mov ecx, dword [eax + reloc.ole32.dll_CoCreateGuid]
mov edx, dword [esi]
push ecx
mov ecx, esi
call dword [edx + 0x3c]
jmp 0x10a4d24b
cmp eax, 0xd
jne 0x10a4d226
mov eax, dword [ebp]
mov ecx, dword [eax + reloc.ole32.dll_CoCreateGuid]
movzx eax, byte [eax + 0x2ee]
mov edx, dword [esi]
push 0
push ecx
and eax, 0xffffff01
push eax
mov ecx, esi
call dword [edx + 0x48]
jmp 0x10a4d24b
cmp eax, 0xe
jne 0x10a4d24b
mov eax, dword [ebp]
mov ecx, dword [eax + reloc.ole32.dll_CoCreateGuid]
movzx eax, byte [eax + 0x2ee]
mov edx, dword [esi]
push 0
push ecx
and eax, 0xffffff01
push eax
mov ecx, esi
call dword [edx + 0x4c]
mov ecx, dword [ebp]
mov ebx, dword [esp + 0x1c]
mov edx, dword [ecx + reloc.ole32.dll_CoCreateGuid]
cmp edx, dword [ebx + 0x54]
jne 0x10a4d7eb
mov eax, dword [esp + 0xfc]
fld dword [eax + 0x1b8]
fcomp dword [0x10c109f8]
fnstsw ax
test ah, 5
jp 0x10a4d282
mov eax, 1
jmp 0x10a4d284
xor eax, eax
mov edx, dword [esi]
push eax
mov ecx, esi
call dword [edx + 0x1c]
mov dword [esp + 0x28], 0
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 0x54]
test ecx, ecx
mov dword [esp + 0x14], 0
jle 0x10a4d7d4
mov dword [esp + 0x18], 0
mov ecx, dword [esp + 0xf8]
mov ecx, dword [ecx]
mov eax, dword [esp + 0x14]
mov edx, dword [ecx + reloc.ole32.dll_CoCreateGuid]
lea ebp, [edx + eax*8]
cmp dword [ebp + 4], 0xffffffff
je 0x10a4d7b1
mov edx, dword [esp + 0xfc]
mov edx, dword [edx + reloc.ole32.dll_CoCreateGuid]
mov eax, dword [ebp]
mov edx, dword [edx + reloc.ole32.dll_CoCreateGuid]
lea eax, [eax + eax*8]
lea ebx, [edx + eax*8]
mov edx, dword [esp + 0x14]
mov eax, dword [ecx]
push edx
call dword [eax + 0x98]
mov edi, eax
test edi, edi
jne 0x10a4d31f
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 0xdc]
mov edx, dword [esp + 0x18]
mov edi, dword [edx + ecx]
test edi, edi
jne 0x10a4d31f
mov eax, dword [0x10cc28ac]
mov edi, dword [eax + 0x40]
mov edx, dword [edi]
mov ecx, edi
call dword [edx + 0x70]
test eax, eax
je 0x10a4d3b0
mov eax, dword [esp + 0xfc]
fld dword [eax + 0x194]
mov dword [esp + 0x10], 1
fld dword [eax + 0x198]
mov eax, dword [eax + reloc.ole32.dll_CoCreateGuid]
mov dword [esp + 0xd8], eax
mov eax, dword [esp + 0xf8]
fld dword [eax + 0xa8]
fsub st(2)
fstp dword [esp + 0xb0]
fld dword [eax + 0xac]
fsub st(1)
fstp st(2)
fstp st(0)
fld dword [eax + 0xb0]
fsub dword [esp + 0xd8]
fld dword [esp + 0xb0]
fmul dword [esp + 0xb0]
fld st(1)
fmul st(2)
faddp st(1)
fld st(2)
fmul st(3)
faddp st(1)
fcomp dword [0x10c111f4]
fnstsw ax
fstp st(0)
test ah, 5
fstp st(0)
jnp 0x10a4d3b8
mov dword [esp + 0x10], 0
mov ecx, dword [esi + 0x14]
mov edx, dword [ecx]
push 0
push edi
push esi
call dword [edx + 0x24]
mov ecx, dword [esi + 0x14]
lea eax, [ebx + 0x14]
mov dword [esp + 0x5c], eax
mov edx, dword [ecx]
push 1
lea eax, [esp + 0x60]
push eax
push 0
push esi
call dword [edx + 0x1c]
mov eax, dword [ebp + 4]
mov edx, dword [ebx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edx + ecx*4 + 0xc]
test eax, eax
lea edi, [edx + ecx*4]
jle 0x10a4d7b1
mov eax, dword [esp + 0x28]
test eax, eax
jne 0x10a4d429
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x10a4d7b1
mov eax, dword [esi]
push 0
add ebx, 0x34
push ebx
mov ecx, esi
call dword [eax + 0x5c]
mov ecx, dword [edi + 8]
mov ebp, dword [esp + 0xf8]
mov dword [esp + 0x10], ecx
jmp 0x10a4d512
cmp eax, 1
jne 0x10a4d7b1
mov eax, dword [esp + 0x10]
test eax, eax
je 0x10a4d7b1
mov ebp, dword [esp + 0xf8]
fld dword [ebp + 8]
fcomp dword [0x10c109f8]
fnstsw ax
test ah, 5
jp 0x10a4d45c
mov ebx, 1
jmp 0x10a4d45e
xor ebx, ebx
mov eax, dword [esp + 0xfc]
fld dword [eax + 0x198]
mov edx, dword [eax + reloc.ole32.dll_CoCreateGuid]
fstp dword [esp + 0x50]
fld dword [eax + 0x19c]
lea eax, [esp + 0x4c]
push eax
lea ecx, [esp + 0xe4]
push ecx
fstp dword [esp + 0x5c]
lea ecx, [ebp + 0x50]
mov dword [esp + 0x54], edx
mov dword [esp + 0x60], 0x3f800000
call fcn.1094fe60
mov edx, dword [eax]
mov ecx, dword [eax + 4]
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x3c], edx
mov edx, dword [eax + 8]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x78], ecx
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x84], ecx
push 0
lea ecx, [esp + 0x74]
mov dword [esp + 0x80], edx
mov dx, word [edi + 0x10]
mov dword [esp + 0x84], eax
mov eax, dword [esi]
push ecx
mov ecx, esi
mov dword [esp + 0x78], 0x10c03454
mov word [esp + 0xa0], dx
mov dword [esp + 0xa4], ebx
call dword [eax + 0x60]
mov dword [esp + 0x10], eax
movzx eax, word [edi + 0x12]
movzx ecx, word [edi + 0x10]
mov edx, dword [esi]
push eax
mov eax, dword [edi + 0xc]
push ecx
mov ecx, dword [esp + 0x18]
push eax
push ecx
push 0
mov ecx, esi
call dword [edx + 0x64]
mov eax, dword [esp + 0x34]
test eax, eax
je 0x10a4d53f
cmp eax, 6
jne 0x10a4d7b1
mov ecx, dword [ebp]
mov edx, dword [ecx]
call dword [edx + 0x12c]
mov ecx, dword [eax + reloc.ole32.dll_CoCreateGuid]
test ecx, ecx
mov dword [esp + 0x20], eax
je 0x10a4d69e
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx + reloc.ole32.dll_CoCreateGuid]
xor ebx, ebx
test eax, eax
mov dword [esp + 0x2c], ebx
jle 0x10a4d697
lea ebx, [ebx]
mov eax, dword [esp + 0x20]
mov edx, dword [eax + reloc.ole32.dll_CoCreateGuid]
mov edx, dword [edx + ebx*4]
add eax, 0x210
mov eax, dword [ebp]
mov ecx, dword [eax + reloc.ole32.dll_CoCreateGuid]
fld dword [ecx + 0x3b0]
sub esp, 8
fstp qword [esp]
mov dword [esp + 0x38], edx
call fcn.1099e510
test eax, eax
jne 0x10a4d5ce
mov ecx, dword [esp + 0x20]
push 4
push 1
push ebx
add ecx, 0x210
call fcn.109119c0
dec ebx
jmp 0x10a4d680
mov eax, dword [0x10ccacc0]
mov edx, dword [eax + 8]
fld dword [eax]
fld dword [eax + 4]
sub esp, 0x10
mov eax, esp
fxch st(1)
push 0
fstp dword [eax]
push 0
mov ecx, edx
fstp dword [eax + 4]
push 0
mov dword [eax + 8], ecx
mov dword [eax + 0xc], 0
mov ecx, dword [esi + 0x14]
push 0
mov dword [esp + 0xe8], edx
mov edx, dword [ecx]
push esi
call dword [edx + 0x14]
mov ecx, dword [ebp]
mov edx, dword [esp + 0x14]
mov eax, dword [ecx]
push edx
call dword [eax + 0x98]
test eax, eax
jne 0x10a4d63c
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 0xdc]
mov edx, dword [esp + 0x18]
mov eax, dword [edx + ecx]
test eax, eax
jne 0x10a4d63c
mov eax, dword [0x10cc28ac]
mov eax, dword [eax + 0x40]
mov edx, dword [esp + 0xfc]
mov ecx, dword [esi]
mov ebx, dword [esp + 0x30]
push 0
push eax
push edx
mov dword [esp + 0x3c], ecx
call fcn.109c5360
push eax
mov eax, dword [esp + 0x38]
mov ecx, esi
call dword [eax + 0x34]
movzx ecx, word [edi + 0x12]
movzx edx, word [edi + 0x10]
mov eax, dword [esi]
push ecx
mov ecx, dword [edi + 0xc]
push edx
mov edx, dword [esp + 0x18]
push ecx
push edx
push 0
mov ecx, esi
call dword [eax + 0x64]
mov ebx, dword [esp + 0x2c]
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + reloc.ole32.dll_CoCreateGuid]
inc ebx
cmp ebx, ecx
mov dword [esp + 0x2c], ebx
jl 0x10a4d580
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 4]
mov ebx, dword [esp + reloc.ole32.dll_CoCreateGuid]
test ebx, ebx
je 0x10a4d7b1
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
mov dword [esp + 0x2c], ebx
jmp 0x10a4d6c0
mov ecx, dword [ebp]
mov eax, dword [ecx + reloc.ole32.dll_CoCreateGuid]
mov edx, dword [ebx]
fld dword [eax + 0x3b0]
sub esp, 8
fstp qword [esp]
mov dword [esp + 0x38], edx
call fcn.1099e510
test eax, eax
je 0x10a4d79b
mov eax, dword [0x10ccacc0]
mov ecx, dword [eax + 8]
fld dword [eax]
fld dword [eax + 4]
sub esp, 0x10
mov eax, esp
fxch st(1)
push 0
fstp dword [eax]
push 0
mov edx, ecx
fstp dword [eax + 4]
push 0
mov dword [eax + 8], edx
mov dword [eax + 0xc], 0
mov dword [esp + 0x84], ecx
mov ecx, dword [esi + 0x14]
mov eax, dword [ecx]
push 0
push esi
call dword [eax + 0x14]
mov ecx, dword [ebp]
mov eax, dword [esp + 0x14]
mov edx, dword [ecx]
push eax
call dword [edx + 0x98]
test eax, eax
jne 0x10a4d757
mov ecx, dword [esp + 0x1c]
mov edx, dword [ecx + 0xdc]
mov eax, dword [esp + 0x18]
mov eax, dword [eax + edx]
test eax, eax
jne 0x10a4d757
mov ecx, dword [0x10cc28ac]
mov eax, dword [ecx + 0x40]
mov edx, dword [esp + 0xfc]
mov ecx, dword [esi]
mov ebx, dword [esp + 0x30]
push 0
push eax
push edx
mov dword [esp + 0x3c], ecx
call fcn.109c5360
push eax
mov eax, dword [esp + 0x38]
mov ecx, esi
call dword [eax + 0x34]
movzx ecx, word [edi + 0x12]
movzx edx, word [edi + 0x10]
mov eax, dword [esi]
push ecx
mov ecx, dword [edi + 0xc]
push edx
mov edx, dword [esp + 0x18]
push ecx
push edx
push 0
mov ecx, esi
call dword [eax + 0x64]
mov ebx, dword [esp + 0x2c]
mov ebx, dword [ebx + 4]
test ebx, ebx
mov dword [esp + 0x2c], ebx
jne 0x10a4d6c0
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov edx, dword [ecx + 0x54]
inc eax
add edi, 0xc
cmp eax, edx
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], edi
jl 0x10a4d2b3
mov eax, dword [esp + 0x28]
inc eax
cmp eax, 2
mov dword [esp + 0x28], eax
jl 0x10a4d294
jmp 0x10a4dda8
mov ecx, dword [esi + 0x14]
mov edx, dword [ecx]
add ebp, 0x10
push ebp
push 0
push esi
call dword [edx + 0x18]
mov eax, dword [ebx + 0xe0]
mov ebx, dword [esp + 0x1c]
xor edi, edi
test eax, eax
mov byte [esp + 0x27], 0
jle 0x10a4d85c
xor ebp, ebp
mov eax, dword [esp + 0xf8]
mov ecx, dword [eax]
mov edx, dword [ecx]
push edi
call dword [edx + 0x98]
test eax, eax
jne 0x10a4d83d
mov eax, dword [ebx + 0xdc]
mov eax, dword [eax + ebp]
test eax, eax
jne 0x10a4d83d
mov ecx, dword [0x10cc28ac]
mov eax, dword [ecx + 0x40]
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x78]
mov cl, byte [esp + 0x27]
or cl, al
mov eax, dword [ebx + 0xe0]
inc edi
add ebp, 0xc
cmp edi, eax
mov byte [esp + 0x27], cl
jl 0x10a4d811
lea eax, [ebx + 0x5c]
mov dword [esp + 0x70], eax
mov eax, dword [ebx + 0x148]
test eax, eax
mov eax, 2
je 0x10a4d87b
lea ecx, [ebx + 0x78]
mov dword [esp + 0x74], ecx
jmp 0x10a4d885
lea edx, [ebx + 0x94]
mov dword [esp + 0x74], edx
mov ecx, dword [esp + 0x14]
test ecx, ecx
je 0x10a4d899
add ecx, 0x34
mov dword [esp + 0x78], ecx
mov eax, 3
mov ecx, dword [ebx + 0xb4]
or dl, 0xff
test ecx, ecx
jle 0x10a4d8cd
xor edi, edi
mov ebp, ecx
lea ebx, [ebx]
mov cl, byte [esp + 0x27]
test cl, dl
je 0x10a4d8c5
mov ecx, dword [ebx + 0xb0]
add ecx, edi
mov dword [esp + eax*4 + 0x70], ecx
inc eax
add edi, 0x20
shl dl, 1
dec ebp
jne 0x10a4d8b0
mov ecx, dword [esi + 0x14]
mov edx, dword [ecx]
push eax
lea eax, [esp + 0x74]
push eax
push 0
push esi
call dword [edx + 0x1c]
mov edx, dword [esi]
lea eax, [ebx + 0xc0]
push 0
push eax
mov ecx, esi
mov dword [esp + 0x20], eax
call dword [edx + 0x5c]
mov eax, dword [0x10c92290]
mov ecx, dword [0x10c4757c]
cmp eax, ecx
mov dword [esp + 0x10], eax
jge 0x10a4d9f8
lea esp, [esp]
mov eax, dword [esp + 0x1c]
mov edx, dword [eax + 0x54]
xor ebp, ebp
test edx, edx
jle 0x10a4d9e7
mov edi, dword [esp + 0x1c]
xor eax, eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x28], eax
nop
mov ecx, dword [esp + 0xf8]
mov ecx, dword [ecx]
mov edx, dword [ecx]
push ebp
call dword [edx + 0x98]
mov ebx, eax
test ebx, ebx
jne 0x10a4d962
mov eax, dword [edi + 0xdc]
mov ecx, dword [esp + 0x28]
mov ebx, dword [ecx + eax]
test ebx, ebx
jne 0x10a4d962
mov edx, dword [0x10cc28ac]
mov ebx, dword [edx + 0x40]
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x70]
mov ecx, dword [esp + 0x10]
test ecx, ecx
jne 0x10a4dac1
test eax, eax
jne 0x10a4d9bf
mov ecx, dword [esp + 0x1c]
mov edi, dword [ecx + 0x50]
add edi, dword [esp + 0x20]
cmp word [edi + 0x10], ax
jbe 0x10a4d9bb
mov ecx, dword [esi + 0x14]
mov edx, dword [ecx]
push eax
push ebx
push esi
call dword [edx + 0x24]
movzx ecx, word [edi + 0xc]
movzx edx, word [edi + 0xa]
mov ebx, dword [edi + 4]
mov eax, dword [esi]
push ecx
movzx ecx, word [edi + 0x10]
push edx
movzx edx, word [edi + 8]
push ecx
xor ecx, ecx
test ebx, ebx
setne cl
push edx
push ecx
mov ecx, esi
call dword [eax + 0x64]
mov edi, dword [esp + 0x1c]
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x20]
mov eax, dword [edi + 0x54]
inc ebp
add edx, 0xc
add ecx, 0x14
cmp ebp, eax
mov dword [esp + 0x28], edx
mov dword [esp + 0x20], ecx
jl 0x10a4d930
mov ecx, dword [0x10c4757c]
mov eax, dword [esp + 0x10]
inc eax
cmp eax, ecx
mov dword [esp + 0x10], eax
jl 0x10a4d910
cmp ecx, 2
jne 0x10a4dda8
mov eax, dword [esp + 0x34]
test eax, eax
je 0x10a4da12
cmp eax, 6
jne 0x10a4dda8
mov ecx, dword [esp + 0xf8]
mov ecx, dword [ecx]
mov edx, dword [ecx]
call dword [edx + 0x12c]
mov edi, eax
mov eax, dword [edi + reloc.ole32.dll_CoCreateGuid]
test eax, eax
mov dword [esp + 0x20], edi
je 0x10a4dc22
mov ecx, dword [esp + 0x18]
mov eax, dword [esi]
push 0
push ecx
mov ecx, esi
call dword [eax + 0x5c]
mov eax, dword [edi + reloc.ole32.dll_CoCreateGuid]
test eax, eax
mov dword [esp + 0x14], 0
jle 0x10a4dc22
mov ebp, dword [esp + 0x1c]
mov ebx, dword [esp + 0xf8]
jmp 0x10a4da70
mov edi, dword [esp + 0x20]
mov edx, dword [edi + reloc.ole32.dll_CoCreateGuid]
mov eax, dword [esp + 0x14]
mov edx, dword [edx + eax*4]
mov ecx, dword [ebx]
mov eax, dword [ecx + reloc.ole32.dll_CoCreateGuid]
fld dword [eax + 0x3b0]
add edi, 0x210
sub esp, 8
fstp qword [esp]
mov dword [esp + 0x38], edx
call fcn.1099e510
test eax, eax
jne 0x10a4daf6
mov ecx, dword [esp + 0x14]
push 4
push 1
push ecx
mov ecx, edi
call fcn.109119c0
dec dword [esp + 0x14]
jmp 0x10a4dc05
cmp dword [esp + 0x10], 1
jne 0x10a4d9bf
test eax, eax
je 0x10a4d9bf
mov edx, dword [esp + 0xf8]
mov eax, dword [esp + 0xfc]
push ebx
push ebp
push edi
push edx
push eax
mov ebx, esi
call fcn.10a4cdd0
add esp, 0x14
jmp 0x10a4d9bf
mov eax, dword [ebp + 0x54]
xor edi, edi
cmp eax, edi
mov dword [esp + 0x2c], edi
jle 0x10a4dc05
mov dword [esp + 0x10], edi
mov dword [esp + 0x28], edi
nop
mov edx, dword [ebp + 0x50]
mov eax, dword [esp + 0x10]
cmp word [eax + edx + 0x10], 0
jbe 0x10a4dbdf
mov eax, dword [0x10ccacc0]
mov ecx, dword [eax + 8]
fld dword [eax]
fld dword [eax + 4]
sub esp, 0x10
mov eax, esp
fxch st(1)
push 0
fstp dword [eax]
push 0
mov edx, ecx
fstp dword [eax + 4]
push 0
mov dword [eax + 8], edx
mov dword [eax + 0xc], 0
mov dword [esp + 0x84], ecx
mov ecx, dword [esi + 0x14]
mov eax, dword [ecx]
push 0
push esi
call dword [eax + 0x14]
mov ecx, dword [ebx]
mov edx, dword [ecx]
push edi
call dword [edx + 0x98]
test eax, eax
jne 0x10a4db89
mov eax, dword [ebp + 0xdc]
mov ecx, dword [esp + 0x28]
mov eax, dword [ecx + eax]
test eax, eax
jne 0x10a4db89
mov edx, dword [0x10cc28ac]
mov eax, dword [edx + 0x40]
mov ebx, dword [esp + 0x30]
push eax
mov eax, dword [esp + reloc.ole32.dll_CoCreateGuid]
push eax
call fcn.109c5360
mov edi, dword [ebp + 0x50]
mov edx, dword [esp + 0x10]
push 0
add edi, edx
mov edx, dword [esi]
push eax
mov ecx, esi
call dword [edx + 0x34]
movzx ecx, word [edi + 0xc]
movzx edx, word [edi + 0xa]
mov ebx, dword [edi + 4]
mov eax, dword [esi]
push ecx
movzx ecx, word [edi + 0x10]
push edx
movzx edx, word [edi + 8]
push ecx
xor ecx, ecx
test ebx, ebx
setne cl
push edx
push ecx
mov ecx, esi
call dword [eax + 0x64]
mov ebx, dword [esp + 0xf8]
mov edi, dword [esp + 0x2c]
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x10]
mov eax, dword [ebp + 0x54]
inc edi
add edx, 0xc
add ecx, 0x14
cmp edi, eax
mov dword [esp + 0x2c], edi
mov dword [esp + 0x28], edx
mov dword [esp + 0x10], ecx
jl 0x10a4db10
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x20]
mov ecx, dword [edx + reloc.ole32.dll_CoCreateGuid]
inc eax
cmp eax, ecx
mov dword [esp + 0x14], eax
jl 0x10a4da70
jmp 0x10a4dc26
mov ebp, dword [esp + 0x1c]
mov edi, dword [esp + reloc.ole32.dll_CoCreateGuid]
test edi, edi
je 0x10a4dda8
mov ecx, dword [esp + 0x18]
mov eax, dword [esi]
push 0
push ecx
mov ecx, esi
call dword [eax + 0x5c]
mov ebx, dword [esp + 0xf8]
mov dword [esp + 0x20], edi
mov edi, edi
mov eax, dword [ebx]
mov ecx, dword [eax + reloc.ole32.dll_CoCreateGuid]
mov edx, dword [esp + 0x20]
fld dword [ecx + 0x3b0]
mov edx, dword [edx]
sub esp, 8
fstp qword [esp]
mov dword [esp + 0x38], edx
call fcn.1099e510
test eax, eax
je 0x10a4dd95
mov eax, dword [ebp + 0x54]
xor edi, edi
cmp eax, edi
mov dword [esp + 0x2c], edi
jle 0x10a4dd95
mov dword [esp + 0x10], edi
mov dword [esp + 0x28], edi
jmp 0x10a4dca0
mov edx, dword [ebp + 0x50]
mov eax, dword [esp + 0x10]
cmp word [eax + edx + 0x10], 0
jbe 0x10a4dd6f
mov eax, dword [0x10ccacc0]
mov ecx, dword [eax + 8]
fld dword [eax]
fld dword [eax + 4]
sub esp, 0x10
mov eax, esp
fxch st(1)
push 0
fstp dword [eax]
push 0
mov edx, ecx
fstp dword [eax + 4]
push 0
mov dword [eax + 8], edx
mov dword [eax + 0xc], 0
mov dword [esp + 0x84], ecx
mov ecx, dword [esi + 0x14]
mov eax, dword [ecx]
push 0
push esi
call dword [eax + 0x14]
mov ecx, dword [ebx]
mov edx, dword [ecx]
push edi
call dword [edx + 0x98]
test eax, eax
jne 0x10a4dd19
mov eax, dword [ebp + 0xdc]
mov ecx, dword [esp + 0x28]
mov eax, dword [ecx + eax]
test eax, eax
jne 0x10a4dd19
mov edx, dword [0x10cc28ac]
mov eax, dword [edx + 0x40]
mov ebx, dword [esp + 0x30]
push eax
mov eax, dword [esp + reloc.ole32.dll_CoCreateGuid]
push eax
call fcn.109c5360
mov edi, dword [ebp + 0x50]
mov edx, dword [esp + 0x10]
push 0
add edi, edx
mov edx, dword [esi]
push eax
mov ecx, esi
call dword [edx + 0x34]
movzx ecx, word [edi + 0xc]
movzx edx, word [edi + 0xa]
mov ebx, dword [edi + 4]
mov eax, dword [esi]
push ecx
movzx ecx, word [edi + 0x10]
push edx
movzx edx, word [edi + 8]
push ecx
xor ecx, ecx
test ebx, ebx
setne cl
push edx
push ecx
mov ecx, esi
call dword [eax + 0x64]
mov ebx, dword [esp + 0xf8]
mov edi, dword [esp + 0x2c]
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x10]
mov eax, dword [ebp + 0x54]
inc edi
add edx, 0xc
add ecx, 0x14
cmp edi, eax
mov dword [esp + 0x2c], edi
mov dword [esp + 0x28], edx
mov dword [esp + 0x10], ecx
jl 0x10a4dca0
mov edx, dword [esp + 0x20]
mov eax, dword [edx + 4]
test eax, eax
mov dword [esp + 0x20], eax
jne 0x10a4dc50
mov eax, dword [esp + 0x34]
xor ebx, ebx
cmp eax, ebx
je 0x10a4ddbb
cmp eax, 6
jne 0x10a4e02e
mov eax, dword [esp + 0x38]
cmp dword [eax + reloc.ole32.dll_CoCreateGuid], ebx
mov dword [esp + 0x10], ebx
jle 0x10a4e02e
nop
mov edi, dword [esp + 0x38]
mov ecx, dword [edi + reloc.ole32.dll_CoCreateGuid]
mov edx, dword [esp + 0x10]
mov ebp, dword [ecx + edx*4]
mov eax, dword [esp + 0xf8]
mov ecx, dword [eax]
mov edx, dword [ecx + reloc.ole32.dll_CoCreateGuid]
fld dword [edx + 0x3b0]
mov edx, dword [ebp]
add edi, 0x21c
sub esp, 8
fstp qword [esp]
call fcn.1099e510
test eax, eax
jne 0x10a4de3f
mov eax, dword [edi]
mov ebp, dword [esp + 0x10]
mov esi, dword [eax + ebp*4]
cmp esi, ebx
je 0x10a4de2d
push esi
call fcn.1098ffe0
mov ecx, dword [0x10c73bf0]
mov edx, dword [ecx]
push esi
call dword [edx + 8]
push 4
push 1
push ebp
mov ecx, edi
call fcn.109119c0
dec ebp
jmp 0x10a4e017
mov ecx, dword [0x10c8bc04]
xor esi, esi
cmp ecx, ebx
je 0x10a4de96
mov edx, dword [ebp]
mov edi, dword [edx + 0x18]
mov eax, dword [ecx]
cmp dword [eax + 0x10], edi
jne 0x10a4de87
movzx ebx, byte [edx + 0x21]
cmp dword [eax + 0x18], ebx
jne 0x10a4de85
movzx ebx, byte [edx + 0x20]
cmp dword [eax + 0x14], ebx
jne 0x10a4de85
mov ebx, dword [eax + 0xc]
cmp ebx, dword [ebp + 4]
jne 0x10a4de85
mov ebx, dword [eax + 0x1c]
cmp ebx, dword [ebp + 0x2c]
jne 0x10a4de85
cmp dword [eax + 0x28], reloc.ole32.dll_CoCreateGuid
jge 0x10a4de85
mov esi, eax
xor ebx, ebx
mov ecx, dword [ecx + 4]
cmp ecx, ebx
jne 0x10a4de51
cmp esi, ebx
jne 0x10a4df91
mov eax, dword [0x10c73cac]
mov edx, dword [0x10c73cb0]
add eax, 7
and eax, 0xfffffff8
lea ecx, [eax + 0x30]
cmp ecx, edx
mov dword [0x10c73cac], ecx
jbe 0x10a4ded7
mov eax, 0x38
mov edi, 0x10c73cac
call fcn.109577c0
mov eax, dword [0x10c73cac]
add eax, 7
and eax, 0xfffffff8
lea ecx, [eax + 0x30]
mov dword [0x10c73cac], ecx
cmp eax, ebx
je 0x10a4df37
mov ecx, dword [ebp]
mov edx, dword [ebp + 4]
mov esi, dword [ebp + 0x2c]
mov dword [eax + 4], ebx
mov dword [eax], ebx
mov dword [eax + 8], ebx
mov dword [eax + 0xc], edx
mov edi, dword [ecx + 0x18]
mov dword [eax + 0x10], edi
movzx edi, byte [ecx + 0x20]
mov dword [eax + 0x14], edi
movzx edi, byte [ecx + 0x21]
mov dword [eax + 0x18], edi
mov dword [eax + 0x1c], esi
mov ecx, dword [ecx + reloc.ole32.dll_CoCreateGuid]
shr ecx, 5
and ecx, 1
cmp edx, ebx
mov dword [eax + 0x20], ecx
mov dword [eax + 0x28], ebx
mov dword [eax + 0x2c], ebx
mov dword [eax + 0x24], 0x1c
je 0x10a4df2d
mov dword [eax + 0x24], 0x24
mov ecx, dword [0x10c73cac]
mov esi, eax
jmp 0x10a4df39
xor esi, esi
mov edx, dword [0x10c73cb0]
lea eax, [ecx + 7]
and eax, 0xfffffff8
lea ecx, [eax + 8]
cmp ecx, edx
mov dword [0x10c73cac], ecx
jbe 0x10a4df75
mov eax, 0x10
mov edi, 0x10c73cac
call fcn.109577c0
mov eax, dword [0x10c73cac]
add eax, 7
and eax, 0xfffffff8
lea edx, [eax + 8]
mov dword [0x10c73cac], edx
cmp eax, ebx
je 0x10a4df8b
mov ecx, dword [0x10c8bc04]
mov dword [eax], esi
mov dword [eax + 4], ecx
mov dword [0x10c8bc04], eax
jmp 0x10a4df91
mov dword [0x10c8bc04], ebx
mov eax, dword [0x10c73cac]
mov edx, dword [0x10c73cb0]
add eax, 7
and eax, 0xfffffff8
lea ecx, [eax + 0x10]
cmp ecx, edx
mov dword [0x10c73cac], ecx
jbe 0x10a4dfd2
mov eax, 0x18
mov edi, 0x10c73cac
call fcn.109577c0
mov eax, dword [0x10c73cac]
add eax, 7
and eax, 0xfffffff8
lea edx, [eax + 0x10]
mov dword [0x10c73cac], edx
cmp eax, ebx
je 0x10a4dfef
mov dword [eax], 0x10c0b988
mov dword [eax + 0xc], ebp
mov ecx, dword [ebp + 0xc]
mov dword [eax + 8], ecx
mov edx, dword [ebp + 0x24]
mov dword [eax + 4], edx
mov edi, eax
jmp 0x10a4dff1
xor edi, edi
push edi
call fcn.1099da80
mov eax, dword [edi + 8]
imul eax, dword [esi + 0x24]
mov ebp, dword [esi + 0x28]
add ebp, eax
mov eax, dword [esi + 0x2c]
mov dword [esi + 0x28], ebp
mov ecx, dword [edi + 4]
mov ebp, dword [esp + 0x10]
shl ecx, 1
add eax, ecx
mov dword [esi + 0x2c], eax
mov edx, dword [esp + 0x38]
mov eax, dword [edx + reloc.ole32.dll_CoCreateGuid]
inc ebp
cmp ebp, eax
mov dword [esp + 0x10], ebp
jl 0x10a4ddd0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xe4
ret