Function at 0x406860
Capabilities:
Link many functions at runtime

Disassembly:
push 0xffffffffffffffff
push 0x46c50c
mov eax, dword fs:[0]
push eax
push ecx
push ebx
push ebp
push esi
push edi
mov eax, dword [0x488e40]
xor eax, esp
push eax
lea eax, [esp + 0x18]
mov dword fs:[0], eax
mov esi, ecx
push str.Microsoft
call fcn.0043f102
call fcn.00406ed0
lea eax, [esi + 0xa4]
push eax
mov ecx, esi
call fcn.0043f810
mov ebp, dword [sym.imp.KERNEL32.dll_LoadLibraryA]
push 0x4758f4
call ebp
mov edi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
xor ebx, ebx
cmp eax, ebx
mov dword [esi + 0x15c], eax
je 0x40694d
push str.CreateActCtxA
push eax
call edi
cmp eax, ebx
mov dword [esi + 0x160], eax
je 0x406921
mov eax, dword [esi + 0x15c]
push str.ActivateActCtx
push eax
call edi
cmp eax, ebx
mov dword [esi + 0x164], eax
je 0x406921
mov ecx, dword [esi + 0x15c]
push str.DeactivateActCtx
push ecx
call edi
cmp eax, ebx
mov dword [esi + 0x168], eax
je 0x406921
mov edx, dword [esi + 0x15c]
push str.ReleaseActCtx
push edx
call edi
cmp eax, ebx
mov dword [esi + 0x16c], eax
jne 0x406939
mov dword [esi + 0x160], ebx
mov dword [esi + 0x164], ebx
mov dword [esi + 0x168], ebx
mov dword [esi + 0x16c], ebx
mov eax, dword [esi + 0x15c]
push str.GetProductInfo
push eax
call edi
mov dword [esi + 0x170], eax
push str.IMAGEHLP.DLL
call ebp
cmp eax, ebx
mov dword [esi + 0x174], eax
je 0x40696c
push str.UnDecorateSymbolName
push eax
call edi
mov dword [esi + 0x178], eax
push ebx
push str.NoDelayLoad
push str.Settings
mov ecx, 0x48d550
call fcn.0043f20a
test eax, eax
push ebx
setne cl
push str.NeverDenyProfile
mov byte [esi + 0x251], cl
push str.Settings
mov ecx, 0x48d550
call fcn.0043f20a
test eax, eax
setne dl
push 0x18
mov byte [esi + 0x252], dl
call fcn.0042f8c1
mov edi, eax
add esp, 4
cmp edi, ebx
je 0x4069f8
mov dword [edi], ebx
mov dword [edi + 4], ebx
call fcn.0044188f
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
jne 0x4069db
push 0x80004005
call fcn.00409d90
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [edi + 8], eax
mov byte [edi + 0xc], bl
mov byte [edi + 0xd], bl
mov dword [edi + 0x10], ebx
mov dword [edi + 0x14], ebx
jmp 0x4069fa
xor edi, edi
mov dword [esi + 0x240], edi
call fcn.00440fc7
push esi
call fcn.00407a80
test eax, eax
je 0x406c1b
push 8
mov ecx, esi
call fcn.0043f78a
push 0xff00ff
push ebx
push 0x1a
push 0x96
lea ecx, [esi + 0x1a0]
call fcn.0043efbe
push 0xff00ff
push ebx
push 0x1a
push 0x98
lea ecx, [esi + 0x1a8]
call fcn.0043efbe
push 0xff00ff
push ebx
push 0x1e
push 0x97
lea ecx, [esi + 0x1b0]
call fcn.0043efbe
push 0xff00ff
push ebx
push 0x12
push 0x99
lea ecx, [esi + 0x1b8]
call fcn.0043efbe
push 0x90
call fcn.0042f8c1
add esp, 4
mov dword [esp + 0x14], eax
cmp eax, ebx
mov dword [esp + 0x20], ebx
je 0x406ab2
push 0x46de14
push 0x474b58
push 0x477ad4
push 0x81
mov ecx, eax
call fcn.00441188
jmp 0x406ab4
xor eax, eax
cmp eax, ebx
mov dword [esp + 0x20], 0xffffffff
mov edi, dword [sym.imp.KERNEL32.dll_RaiseException]
mov dword [esi + 0x254], eax
jne 0x406ad7
push ebx
push ebx
push 1
push 0xc0000017
call edi
mov ecx, dword [esi + 0x254]
push ecx
mov ecx, esi
call fcn.0044151c
push 0x254
call fcn.0042f8c1
add esp, 4
mov dword [esp + 0x14], eax
cmp eax, ebx
mov dword [esp + 0x20], 1
je 0x406b0c
push eax
call fcn.0041b4d0
mov ebp, eax
jmp 0x406b0e
xor ebp, ebp
cmp ebp, ebx
mov dword [esp + 0x20], 0xffffffff
jne 0x406b25
push ebx
push ebx
push 1
push 0xc0000017
call edi
mov edx, dword [ebp]
mov eax, dword [edx + 0x138]
push ebx
push ebx
push 0xcf8000
push 0x80
mov ecx, ebp
call eax
test eax, eax
je 0x406c1b
mov dword [esi + 0x20], ebp
mov ecx, dword [ebp + 0x20]
push 1
push ecx
call dword [sym.imp.SHELL32.dll_DragAcceptFiles]
mov ecx, esi
call fcn.00441677
push str.FileTypeA324EA60_2156_11D0_826F_00A0C9044E61
push SysReAllocStringLen
call fcn.00417a30
push str.CLSIDA324EA60_2156_11D0_826F_00A0C9044E61
push SysReAllocStringLen
call fcn.00417a30
add esp, 0x10
call fcn.00417750
call fcn.0044188f
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
jne 0x406b9c
push 0x80004005
call fcn.00409d90
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x14], eax
lea edi, [esp + 0x14]
mov dword [esp + 0x20], 2
call fcn.004178d0
mov edi, dword [esp + 0x14]
mov ecx, edi
call fcn.00417c20
lea ecx, [esi + 0x1c0]
call fcn.0040aa70
cmp dword [esi + 0xb4], ebx
jne 0x406be5
mov dword [esi + 0xb4], 0xffffffff
lea eax, [esi + 0xa4]
push eax
mov ecx, esi
call fcn.0044139e
test eax, eax
jne 0x406c31
lea eax, [edi - 0x10]
mov dword [esp + 0x20], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x406c1b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor eax, eax
mov ecx, dword [esp + 0x18]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10
ret
mov ecx, dword [esi + 0x4c]
push ecx
mov ecx, ebp
call fcn.0043db1f
mov edx, dword [ebp + 0x20]
push edx
call dword [sym.imp.USER32.dll_UpdateWindow]
mov eax, dword [esi + 0x150]
cmp eax, ebx
mov byte [esi + 0x14c], 1
je 0x406c73
mov edx, dword [eax + 0x68]
cmp edx, ebx
je 0x406c73
cmp byte [eax + 0x64], bl
jne 0x406c73
mov eax, dword [eax + 0x94]
push edx
mov ecx, eax
mov edx, esi
call fcn.00407690
mov esi, dword [esi + 0x150]
cmp esi, ebx
je 0x406c84
mov ecx, esi
call fcn.004126e0
lea eax, [edi - 0x10]
mov dword [esp + 0x20], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x406ca8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, 1
mov ecx, dword [esp + 0x18]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10
ret