Function at 0x413ea0
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4afff7
mov eax, dword fs:[0]
push eax
sub esp, 0x38
push ebx
push esi
push edi
mov eax, dword [0x503074]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov ebx, edx
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x24], ecx
mov edi, dword [ebp + 8]
mov esi, str._nullptr_
test edi, edi
mov eax, esi
cmovne eax, edi
test ebx, ebx
push eax
cmovne esi, ebx
push esi
push str.EventName:__s__ClientUniqueId:__s
push str.CCaslEventContainer::AddInterfaceToList
push 0
call fcn.00422b80
push eax
call fcn.0047bd80
add esp, 0x18
mov dword [ebp - 0x28], 0
mov dword [ebp - 4], 0
call fcn.00422b80
mov al, byte [eax + 0x38]
test al, al
je 0x413f49
push 0x28
call fcn.00475970
mov esi, eax
add esp, 4
mov dword [ebp + 8], esi
push str.CCaslEventContainer::AddInterfaceToList
mov byte [ebp - 4], 1
call fcn.00422b80
push eax
mov ecx, esi
call fcn.00477bf0
mov byte [ebp - 4], 0
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x24], 0
je 0x414506
test ebx, ebx
je 0x414506
test edi, edi
je 0x414506
mov esi, dword [sym.imp.OLEAUT32.dll_VariantInit]
push ebx
call esi
test eax, eax
je 0x4144ff
push edi
call esi
test eax, eax
je 0x4144ff
mov edx, ebx
lea ecx, [ebp - 0x18]
call fcn.004116e0
push edi
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 2
call fcn.0040d430
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x44]
xor ebx, ebx
mov dword [ebp - 0x14], ebx
call fcn.004158f0
mov byte [ebp - 4], 4
mov ecx, 0x50bf58
mov byte [ebp + 0xb], bl
call fcn.004769e0
mov byte [ebp - 4], 5
mov esi, dword [0x50bf54]
mov edi, dword [ebp - 0x18]
call fcn.00422b80
push esi
push edi
push str.Name:__s__s_mapInterfaces.size:__d
push str.CCaslEventContainer::AddInterfaceToList
push 2
push eax
call fcn.0047bd80
add esp, 0x18
lea eax, [ebp - 0x18]
mov ecx, 0x50bf50
push eax
lea eax, [ebp - 0x30]
push eax
call fcn.00409930
mov edi, dword [eax]
cmp dword [0x50bf50], edi
je 0x41415f
mov eax, dword [ebp - 0x18]
mov esi, dword [edi + 0x18]
mov dword [ebp - 0x20], eax
call fcn.00422b80
push esi
push dword [ebp - 0x20]
push str.Found:__s__callbacksList.size:__d
push str.CCaslEventContainer::AddInterfaceToList
push 2
push eax
call fcn.0047bd80
mov esi, dword [edi + 0x14]
lea eax, [edi + 0x14]
add esp, 0x18
mov esi, dword [esi]
mov dword [ebp - 0x20], esi
cmp dword [eax], esi
je 0x4140c2
mov ebx, dword [esi + 8]
mov dword [ebp - 0x14], ebx
cmp dword [ebx + 0x14], 0
je 0x41407c
lea edx, [ebp - 0x20]
mov ecx, eax
call fcn.00413cd0
mov esi, dword [edi + 0x18]
call fcn.00422b80
push esi
push str.callbacksList.size:__d
push str.CCaslEventContainer::AddInterfaceToList
push 2
push eax
call fcn.0047bd80
mov esi, dword [ebp - 0x20]
lea eax, [edi + 0x14]
add esp, 0x14
xor ebx, ebx
mov dword [ebp - 0x14], ebx
jmp 0x414033
mov eax, dword [ebx + 8]
test eax, eax
jne 0x41408d
push 0x80004005
call fcn.00402a20
push eax
push dword [ebp - 0x1c]
call fcn.0048edc3
add esp, 8
test eax, eax
jne 0x41411f
call fcn.00422b80
push str.Found_matching_UniqueID_already_in_list__not_marked_for_deletion
push str.CCaslEventContainer::AddInterfaceToList
push 2
push eax
call fcn.0047bd80
add esp, 0x10
mov byte [ebp + 0xb], 1
lea eax, [edi + 0x14]
cmp dword [eax + 4], 0
ja 0x414131
mov esi, dword [edi + 0x10]
call fcn.00422b80
push esi
push str.Erasing_map_entry_for__s___no_callbacks_remaining
push str.CCaslEventContainer::AddInterfaceToList
push 2
push eax
call fcn.0047bd80
add esp, 0x14
lea eax, [ebp - 0x30]
mov ecx, 0x50bf50
push edi
push eax
call fcn.00415550
mov esi, dword [0x50bf54]
call fcn.00422b80
push esi
push str.s_mapInterfaces.size:__d
push str.CCaslEventContainer::AddInterfaceToList
push 2
push eax
call fcn.0047bd80
add esp, 0x14
mov dword [ebp - 4], 4
jmp 0x414198
mov esi, dword [esi]
lea eax, [edi + 0x14]
xor ebx, ebx
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x14], ebx
jmp 0x414033
call fcn.00422b80
push str.Using_existing__nonempty_callback_list
push str.CCaslEventContainer::AddInterfaceToList
push 2
push eax
call fcn.0047bd80
lea ecx, [ebp - 0x44]
add esp, 0x10
lea eax, [edi + 0x14]
cmp ecx, eax
je 0x41415f
mov eax, dword [eax]
push eax
push dword [eax]
call fcn.004171d0
mov dword [ebp - 4], 4
jmp 0x414198
movzx eax, byte [ebp + 0xb]
push eax
push str.FoundIt:__d
push str.CCaslEventContainer::AddInterfaceToList
push 2
call fcn.00422b80
push eax
call fcn.0047bd80
add esp, 0x14
mov ecx, 0x50bf58
call fcn.00476a30
cmp byte [ebp + 0xb], 0
jne 0x4144bf
mov ecx, 0x50bf58
call fcn.004769e0
mov byte [ebp - 4], 7
call fcn.00422b80
push ebx
push str.pCallback_before_new_InterfaceCallback:__p
push str.CCaslEventContainer::AddInterfaceToList
push 2
push eax
call fcn.0047bd80
add esp, 0x14
push 0x18
call fcn.00475970
add esp, 4
mov ecx, eax
call fcn.00419c60
mov esi, eax
mov dword [ebp - 0x14], esi
test esi, esi
je 0x4143c5
call fcn.00422b80
push esi
push str.pCallback_after_new_InterfaceCallback:__p
push str.CCaslEventContainer::AddInterfaceToList
push 2
push eax
call fcn.0047bd80
add esp, 0x14
mov dword [ebp + 8], 0
mov ebx, dword [ebp - 0x24]
lea ecx, [ebp + 8]
push ecx
mov byte [ebp - 4], 8
push 0x4bb5a0
mov eax, dword [ebx]
push ebx
call dword [eax]
mov edi, eax
call fcn.00422b80
push edi
push str.QueryInterface_returns_0x_08X
push str.CCaslEventContainer::AddInterfaceToList
push 2
push eax
call fcn.0047bd80
add esp, 0x14
test edi, edi
js 0x4143b4
mov ecx, dword [0x509ea0]
lea eax, [esi + 4]
push eax
push 0x4cb2a4
push dword [ebp + 8]
mov edx, dword [ecx]
push ecx
call dword [edx + 0xc]
test eax, eax
js 0x4143a9
mov ecx, dword [esi]
test ecx, ecx
je 0x41429a
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
push dword [ebp - 0x2c]
lea ecx, [esi + 0xc]
mov dword [esi], ebx
call fcn.0040d3e0
lea eax, [ebp - 0x1c]
lea ecx, [esi + 8]
push eax
call fcn.0040ca50
lea eax, [ebp - 0x14]
mov dword [esi + 0x10], 0
push eax
lea ecx, [ebp - 0x44]
call fcn.00415860
call fcn.00422b80
push dword [ebp - 0x40]
push str.callbackListToUpdate.size:__d
push str.CCaslEventContainer::AddInterfaceToList
push 2
push eax
call fcn.0047bd80
add esp, 0x14
lea eax, [ebp - 0x18]
mov ecx, 0x50bf50
push eax
lea eax, [ebp - 0x34]
push eax
call fcn.004174f0
mov ecx, dword [ebp - 0x34]
lea eax, [ebp - 0x44]
add ecx, 0x14
cmp ecx, eax
je 0x41430d
mov eax, dword [ebp - 0x44]
push eax
push dword [eax]
call fcn.004171d0
push str.PMC.Data
lea ecx, [ebp - 0x18]
call fcn.0040a080
test eax, eax
jne 0x4143b1
call fcn.00422b80
push str.CompareNoCase_PMC_DATA_STRING__returns_0
push str.CCaslEventContainer::AddInterfaceToList
push 2
push eax
call fcn.0047bd80
add esp, 0x10
mov esi, 1
lock xadd dword [0x509e9c], esi
inc esi
call fcn.00422b80
push dword [0x509e9c]
push esi
push str.InterlockedIncrement_returns:__d__s_lPmcClients:__d
push str.CCaslEventContainer::AddInterfaceToList
push 2
push eax
call fcn.0047bd80
add esp, 0x18
cmp dword [0x509e9c], 1
jne 0x4143b1
cmp dword [0x5030d0], 0
jne 0x4143b1
push 1
call fcn.00480740
add esp, 4
jmp 0x4143b1
lea ecx, [ebp - 0x14]
call fcn.004171a0
mov esi, dword [ebp - 0x14]
mov byte [ebp - 4], 7
mov eax, dword [ebp + 8]
test eax, eax
je 0x4143c5
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov edi, dword [0x50bf54]
call fcn.00422b80
push edi
push str.s_mapInterfaces.size:__d
push str.CCaslEventContainer::AddInterfaceToList
push 2
push eax
call fcn.0047bd80
add esp, 0x14
mov dword [ebp - 4], 4
jmp 0x41441f
mov ecx, 0x50bf58
call fcn.00476a30
lea ecx, [ebp - 0x18]
call fcn.00426e20
mov edi, eax
test edi, edi
js 0x4144e1
test esi, esi
je 0x4144e1
push str.Wireless.GlobalChanged.2.0
lea ecx, [ebp - 0x18]
call fcn.0040a080
test eax, eax
jne 0x4144e1
push eax
push eax
push esi
push 0x411b30
push eax
push eax
call fcn.0048f4d9
add esp, 0x18
test eax, eax
je 0x4144a3
cmp eax, 0xffffffff
je 0x4144a3
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ebp - 4], 4
jmp 0x4144e1
push str.Failed_to_spawn_auto_callback
push str.CCaslEventContainer::AddInterfaceToList
push 2
call fcn.00422b80
push eax
call fcn.0047bd80
add esp, 0x10
jmp 0x4144e1
push dword [ebp - 0x1c]
push str.Returning_S_FALSE_because__s_was_already_in_callback_list
push str.CCaslEventContainer::AddInterfaceToList
push 2
call fcn.00422b80
push eax
call fcn.0047bd80
add esp, 0x14
mov edi, 1
lea ecx, [ebp - 0x44]
call fcn.004158b0
lea ecx, [ebp - 0x1c]
call fcn.0040caf0
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 0
call fcn.0040caf0
jmp 0x41450b
mov edi, 0x80070057
jmp 0x41450b
mov edi, 0x80004003
push edi
push str.hr:_0x_08lX
push str.CCaslEventContainer::AddInterfaceToList
push 1
call fcn.00422b80
push eax
call fcn.0047bd80
mov esi, dword [ebp - 0x28]
add esp, 0x14
test esi, esi
je 0x41453f
mov ecx, esi
call fcn.00478c00
push 0x28
push esi
call fcn.00475d73
add esp, 8
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret