Function at 0x416ef0
Capabilities:
Access peb ldr_data
Get process heap flags

Disassembly:
sub esp, 0x24
mov eax, dword [0x98761c]
push ebx
push esi
push edi
push str.Class_Handlers__Curent_User_
push 0
push 0x1402
push eax
mov dword [esp + 0x20], 0
call dword [sym.imp.USER32.dll_SendMessageW]
mov edi, dword [esp + 0x34]
xor eax, eax
lea ecx, [esp + 0x14]
push ecx
push 0xb
push str.SoftwareClassesCLSID
mov ecx, 0x80000001
mov dword [edi + 0x664], 8
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], eax
call fcn.00500570
add esp, 0xc
test eax, eax
jl 0x417169
push 0
lea esi, [esp + 0x18]
call fcn.00500c40
add esp, 4
test eax, eax
jne 0x417160
lea esp, [esp]
mov eax, dword [0x98761c]
mov ebx, 1
add dword [esp + 0x10], ebx
xor esi, esi
test eax, eax
je 0x416f9f
push 8
push eax
call dword [sym.imp.USER32.dll_GetWindowLongW]
mov esi, eax
test esi, esi
je 0x417160
mov eax, dword [esi + 8]
test eax, eax
je 0x417160
push 0
push eax
call dword [sym.imp.KERNEL32.DLL_WaitForSingleObject]
cmp eax, 0x102
jne 0x416fc4
xor bl, bl
movzx edx, bl
mov dword [esi + 0x1c], edx
test bl, bl
jne 0x417160
mov eax, dword [esp + 0x18]
push str.Class_Handler
call fcn.00505200
add esp, 4
mov dword [edi + 0x784], eax
mov eax, dword [esp + 0x18]
push 0x92bd34
push str.SoftwareClassesCLSID
call fcn.00418cd0
mov edi, eax
add esp, 8
test edi, edi
je 0x4170b9
push 0
push edi
push 0x80000001
xor eax, eax
call fcn.00500730
mov esi, eax
add esp, 0xc
test esi, esi
je 0x4170b0
mov eax, dword [esi + 8]
lea ecx, [esi + 0xc]
shr eax, 1
push ecx
call fcn.004fef10
mov edx, dword fs:[0x18]
add esp, 4
mov ebx, eax
mov eax, dword [edx + 0x30]
mov ecx, dword [eax + 0x18]
push esi
push 0
push ecx
call dword [sym.imp.Ntdll.dll_RtlFreeHeap]
test ebx, ebx
je 0x4170b0
push 0
mov ecx, ebx
call fcn.004fabf0
mov esi, eax
add esp, 4
test esi, esi
je 0x4170a7
mov edx, dword [esp + 0x34]
push esi
push edx
call fcn.00416140
mov eax, dword [esp + 0x34]
mov ecx, dword [eax + 0x654]
mov eax, dword [ecx + 0x30]
cmp eax, 0xd
je 0x417087
cmp eax, 0x12
jne 0x41709e
mov eax, edi
call fcn.004fdeb0
push 0
push edi
push 0x80000001
call fcn.00500f90
add esp, 0xc
push esi
call fcn.00507bce
add esp, 4
push ebx
call fcn.00507bce
add esp, 4
push edi
call fcn.00507bce
add esp, 4
mov eax, dword [0x98761c]
mov edx, dword [esp + 0x34]
mov esi, dword [edx + 0x784]
xor edi, edi
test eax, eax
je 0x4170de
push 8
push eax
call dword [sym.imp.USER32.dll_GetWindowLongW]
mov edi, eax
mov eax, dword [0x98761c]
test esi, esi
je 0x417135
cmp dword [esi], 0x5441534b
jne 0x417135
mov ebx, dword [sym.imp.USER32.dll_SendMessageW]
push esi
push 2
push 0x1404
push eax
call ebx
mov eax, dword [0x98761c]
push esi
push 0
push 0x1405
push eax
call ebx
mov ecx, dword [esi + 4]
cmp ecx, 4
jl 0x417125
mov ebx, dword [ecx*4 + 0x985718]
mov ecx, dword [edi + 0x10]
lea eax, [esi + 0xc]
call fcn.004fe380
push esi
push 0
call dword [sym.imp.KERNEL32.DLL_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.DLL_HeapFree]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x34]
push edx
lea esi, [esp + 0x18]
mov dword [ecx + 0x784], 0
call fcn.00500c40
mov edi, dword [esp + 0x38]
add esp, 4
test eax, eax
je 0x416f80
lea esi, [esp + 0x14]
call fcn.00500e20
xor eax, eax
mov dword [edi + 0x664], eax
pop edi
pop esi
pop ebx
add esp, 0x24
ret 4