Function at 0x46f920
Capabilities:
Link many functions at runtime
Reference sql statements
Reference wmi statements
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x4db4eb
mov eax, dword fs:[0]
push eax
sub esp, 0x21c
mov eax, dword [0x50c620]
xor eax, esp
mov dword [esp + 0x218], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x50c620]
xor eax, esp
push eax
lea eax, [esp + 0x230]
mov dword fs:[0], eax
mov dword [esp + 0x60], ecx
push 9
xor eax, eax
mov dword [esp + 0x58], 0
mov dword [esp + 0x5c], 0
lea ecx, [esp + 0x48]
push str.Ole32.dll
mov dword [esp + 0x1c], 0
mov dword [esp + 0x60], 7
mov dword [esp + 0x5c], 0
mov word [esp + 0x4c], ax
call fcn.00402ad0
mov dword [esp + 0x238], 0
mov eax, dword [0x50fda8]
test al, 1
jne 0x46f9e6
or eax, 1
mov dword [0x50fda8], eax
mov byte [esp + 0x238], 1
mov dword [0x50fda4], 0
call fcn.00422cb0
push 0x4e2750
call fcn.004b177f
add esp, 4
mov byte [esp + 0x238], 0
lea eax, [esp + 0x44]
mov ecx, 0x50fda4
push eax
call fcn.00422e70
mov esi, eax
mov dword [esp + 0x238], 0xffffffff
cmp dword [esp + 0x58], 8
jb 0x46fa15
push dword [esp + 0x44]
call fcn.004b17b6
add esp, 4
xor eax, eax
mov dword [esp + 0x58], 7
mov dword [esp + 0x54], 0
mov word [esp + 0x44], ax
test esi, esi
je 0x4700c7
mov edi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.CoCreateInstance
push esi
call edi
push str.CoInitializeSecurity
push esi
mov ebp, eax
call edi
push str.CoSetProxyBlanket
push esi
mov ebx, eax
call edi
mov esi, eax
test ebp, ebp
je 0x4700c7
test ebx, ebx
je 0x4700c7
test esi, esi
je 0x4700c7
lea ecx, [esp + 0x1c]
call fcn.0046f3d0
mov dword [esp + 0x238], 2
push 0
push 0
push 0
push 3
push 0
push 0
push 0
push 0xffffffffffffffff
push 0
call ebx
lea eax, [esp + 0x3c]
mov dword [esp + 0x3c], 0
push eax
push 0x4e9a4c
push 1
push 0
push 0x4e9b1c
call ebp
test eax, eax
js 0x46fb1a
mov ecx, dword [esp + 0x3c]
test ecx, ecx
je 0x46fb1a
lea edx, [esp + 0x38]
mov dword [esp + 0x38], 0
mov eax, dword [ecx]
push edx
push 0
push 0
push 0
push 0
push 0
push 0
push str.ROOTCIMV2
push ecx
call dword [eax + 0xc]
test eax, eax
js 0x46fb10
mov eax, dword [esp + 0x38]
test eax, eax
je 0x46fb10
push 0
push 0
push 3
push 3
push 0
push 0
push 0xa
push eax
call esi
test eax, eax
mov eax, dword [esp + 0x38]
jns 0x46fb3f
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [esp + 0x3c]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov dword [esp + 0x14], 0xfffffffe
mov dword [esp + 0x238], 0xffffffff
lea ecx, [esp + 0x1c]
call fcn.0046f520
mov eax, dword [esp + 0x14]
jmp 0x4700cc
lea edx, [esp + 0x5c]
mov dword [esp + 0x5c], 0
mov ecx, dword [eax]
push edx
push 0
push 0x30
push str.SELECT__FROM_Win32_NetworkAdapter_WHERE__MACAddress_IS_NOT_NULL__AND__NOT__PNPDeviceID_LIKE_ROOT___
push 0x4eee60
push eax
call dword [ecx + 0x50]
test eax, eax
jns 0x46fb82
mov eax, dword [esp + 0x38]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov eax, dword [esp + 0x3c]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov dword [esp + 0x14], 0xfffffffd
jmp 0x46fb22
push str.OleAut32.dll
lea ecx, [esp + 0x68]
call fcn.00402470
mov byte [esp + 0x238], 3
lea eax, [esp + 0x64]
push eax
call fcn.00422df0
mov ecx, eax
call fcn.00422e70
mov esi, eax
mov byte [esp + 0x238], 2
lea ecx, [esp + 0x64]
call fcn.00402150
test esi, esi
jne 0x46fbe1
mov eax, dword [esp + 0x38]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov eax, dword [esp + 0x3c]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov dword [esp + 0x14], 0xfffffffc
jmp 0x46fb22
push str.VariantInit
push esi
call edi
push str.VariantClear
push esi
mov ebx, eax
call edi
mov edi, eax
test ebx, ebx
je 0x4700a6
test edi, edi
je 0x4700a6
mov ecx, dword [esp + 0x5c]
test ecx, ecx
je 0x47008d
mov ebp, dword [esp + 0x60]
jmp 0x46fc20
lea edx, [esp + 0x60]
mov dword [esp + 0x40], 0
push edx
lea edx, [esp + 0x44]
mov dword [esp + 0x64], 0
mov eax, dword [ecx]
push edx
push 1
push 0xffffffffffffffff
push ecx
call dword [eax + 0x10]
cmp dword [esp + 0x60], 0
je 0x47007f
cmp dword [esp + 0x40], 0
je 0x47007f
lea eax, [esp + 0x44]
push eax
call ebx
mov eax, dword [esp + 0x40]
lea edx, [esp + 0x44]
push 0
push 0
push edx
mov ecx, dword [eax]
push 0
push str.PNPDeviceID
push eax
call dword [ecx + 0x10]
xor eax, eax
push 0xfe
push eax
mov word [esp + 0x134], ax
lea eax, [esp + 0x136]
push eax
call fcn.004b5340
add esp, 0xc
cmp word [esp + 0x44], 8
jne 0x46fcea
mov esi, dword [esp + 0x4c]
test esi, esi
je 0x46fcea
lea ecx, [esp + 0x12c]
mov edx, 0x7f
mov eax, ecx
sub esi, eax
jmp 0x46fcc0
lea eax, [edx + 0x7fffff7f]
test eax, eax
je 0x46fcde
movzx eax, word [esi + ecx]
test ax, ax
je 0x46fcde
mov word [ecx], ax
add ecx, 2
dec edx
jne 0x46fcc0
jmp 0x46fce2
test edx, edx
jne 0x46fce5
sub ecx, 2
xor eax, eax
mov word [ecx], ax
lea eax, [esp + 0x44]
push eax
call edi
lea eax, [esp + 0x12c]
push eax
lea ecx, [esp + 0x80]
call fcn.00402470
mov byte [esp + 0x238], 4
xor eax, eax
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x78], 7
mov dword [esp + 0x74], 0
mov word [esp + 0x64], ax
mov byte [esp + 0x238], 5
push ecx
push 0x4ed6d0
lea ecx, [esp + 0x84]
call fcn.004100a0
cmp eax, 0xffffffff
je 0x46fd8a
push eax
push 0
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x88]
call fcn.0040cca0
mov byte [esp + 0x238], 6
lea ecx, [esp + 0x64]
push eax
call fcn.004024d0
mov byte [esp + 0x238], 5
lea ecx, [esp + 0x20]
call fcn.00402150
cmp dword [esp + 0x78], 8
lea ecx, [esp + 0x64]
mov edx, str.ROOT
cmovae ecx, dword [esp + 0x64]
call fcn.00416ec0
test al, al
je 0x46fdaf
lea ecx, [esp + 0x7c]
call fcn.00406060
lea edx, [esp + 0x12c]
push 1
push 0x80
mov ecx, edx
call fcn.0046f6e0
add esp, 8
test eax, eax
je 0x470045
inc dword [esp + 0x14]
lea ecx, [esp + 0x94]
call fcn.0043dde0
mov byte [esp + 0x238], 7
lea eax, [esp + 0x12c]
push eax
lea ecx, [esp + 0xb0]
call fcn.00402510
push 0xffffffffffffffff
push 0
lea eax, [esp + 0x84]
push eax
lea ecx, [esp + 0x11c]
call fcn.004029b0
lea ecx, [esp + 0xac]
call fcn.00417190
cmp dword [esp + 0xbc], 0
je 0x470031
lea eax, [esp + 0x44]
push eax
call ebx
mov eax, dword [esp + 0x40]
lea edx, [esp + 0x44]
push 0
push 0
push edx
mov ecx, dword [eax]
push 0
push str.MACAddress
push eax
call dword [ecx + 0x10]
push 0x100
lea eax, [esp + 0x130]
push 0
push eax
call fcn.004b5340
add esp, 0xc
cmp word [esp + 0x44], 8
jne 0x46feaf
mov esi, dword [esp + 0x4c]
test esi, esi
je 0x46feaf
lea ecx, [esp + 0x12c]
mov edx, 0x7f
mov eax, ecx
sub esi, eax
lea eax, [edx + 0x7fffff7f]
test eax, eax
je 0x46fea3
movzx eax, word [esi + ecx]
test ax, ax
je 0x46fea3
mov word [ecx], ax
add ecx, 2
dec edx
jne 0x46fe85
jmp 0x46fea7
test edx, edx
jne 0x46feaa
sub ecx, 2
xor eax, eax
mov word [ecx], ax
lea eax, [esp + 0x44]
push eax
call edi
lea ecx, [esp + 0x12c]
mov dword [esp + 0x18], 0x3a
lea edx, [ecx + 2]
jmp 0x46fed0
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x46fed0
sub ecx, edx
lea eax, [esp + 0x18]
sar ecx, 1
lea edx, [esp + 0x12e]
push eax
lea edx, [edx + ecx*2]
lea ecx, [esp + 0x130]
call fcn.00470100
add esp, 4
test eax, eax
je 0x46ff06
xor ecx, ecx
mov word [eax], cx
lea eax, [esp + 0x12c]
push eax
lea ecx, [esp + 0xc8]
call fcn.00402510
lea ecx, [esp + 0xc4]
call fcn.00417190
lea eax, [esp + 0x44]
push eax
call ebx
mov eax, dword [esp + 0x40]
lea edx, [esp + 0x44]
push 0
push 0
push edx
mov ecx, dword [eax]
push 0
push str.GUID
push eax
call dword [ecx + 0x10]
push 0x100
lea eax, [esp + 0x130]
push 0
push eax
call fcn.004b5340
add esp, 0xc
cmp word [esp + 0x44], 8
jne 0x46ffaa
mov esi, dword [esp + 0x4c]
test esi, esi
je 0x46ffaa
lea ecx, [esp + 0x12c]
mov edx, 0x7f
mov eax, ecx
sub esi, eax
mov edi, edi
lea eax, [edx + 0x7fffff7f]
test eax, eax
je 0x46ff9e
movzx eax, word [ecx + esi]
test ax, ax
je 0x46ff9e
mov word [ecx], ax
add ecx, 2
dec edx
jne 0x46ff80
jmp 0x46ffa2
test edx, edx
jne 0x46ffa5
sub ecx, 2
xor eax, eax
mov word [ecx], ax
lea eax, [esp + 0x44]
push eax
call edi
lea eax, [esp + 0x12c]
push eax
lea ecx, [esp + 0x98]
call fcn.00402510
lea ecx, [esp + 0xdc]
call fcn.00406060
lea eax, [esp + 0x44]
push eax
call ebx
mov eax, dword [esp + 0x40]
lea edx, [esp + 0x44]
push 0
push 0
push edx
mov ecx, dword [eax]
push 0
push str.NetConnectionStatus
push eax
call dword [ecx + 0x10]
cmp word [esp + 0x44], 3
jne 0x470013
push dword [esp + 0x4c]
lea eax, [esp + 0xe0]
push 0x4edca8
push eax
call fcn.00417410
add esp, 0xc
lea eax, [esp + 0x44]
push eax
call edi
lea eax, [esp + 0x94]
mov byte [esp + 0xf4], 1
push eax
mov ecx, ebp
call fcn.00450fe0
mov byte [esp + 0x238], 5
lea ecx, [esp + 0x94]
call fcn.0043aee0
mov eax, dword [esp + 0x40]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov byte [esp + 0x238], 4
lea ecx, [esp + 0x64]
call fcn.00402150
mov byte [esp + 0x238], 2
lea ecx, [esp + 0x7c]
call fcn.00402150
mov ecx, dword [esp + 0x5c]
test ecx, ecx
jne 0x46fc20
jmp 0x47008d
mov ecx, dword [esp + 0x5c]
test ecx, ecx
je 0x47008d
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov eax, dword [esp + 0x38]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov eax, dword [esp + 0x3c]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
jmp 0x46fb22
mov eax, dword [esp + 0x38]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov eax, dword [esp + 0x3c]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov dword [esp + 0x14], 0xfffffffb
jmp 0x46fb22
mov eax, 0xfffffffe
mov ecx, dword [esp + 0x230]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x218]
xor ecx, esp
call fcn.004b0ff2
add esp, 0x228
ret