Function at 0x403e60
Capabilities:
Connect to wmi namespace via wbemlocator
Reference sql statements
Reference wmi statements

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x426633
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x400
mov eax, dword [0x42f4cc]
push ebx
mov ebx, dword [ebp + 8]
xor eax, ebp
push esi
xor esi, esi
cmp ebx, esi
mov dword [esp + 0x400], eax
mov eax, dword [ebp + 0xc]
push edi
mov edi, dword [ebp + 0x10]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x10], esi
mov dword [esp + 0x44], esi
jl 0x404738
cmp ebx, 2
jae 0x404738
push esi
push esi
call dword [sym.imp.ole32.dll_CoInitializeEx]
test eax, eax
jl 0x403fbe
push esi
push esi
push esi
push 3
push esi
push esi
push esi
push 0xffffffffffffffff
push esi
call dword [sym.imp.ole32.dll_CoInitializeSecurity]
cmp eax, esi
jge 0x403eea
cmp eax, 0x80010119
jne 0x403fb8
lea ecx, [esp + 0x34]
push ecx
push 0x42c0dc
push 1
push esi
push 0x42c1ac
mov dword [esp + 0x48], esi
call dword [sym.imp.ole32.dll_CoCreateInstance]
cmp eax, esi
jl 0x403fb8
push 0x4289f4
lea ecx, [esp + 0x3c]
mov dword [esp + 0x34], esi
call fcn.00403330
mov eax, dword [eax]
cmp eax, esi
mov dword [esp + 0x414], esi
je 0x403f31
mov ecx, dword [eax]
jmp 0x403f33
xor ecx, ecx
mov eax, dword [esp + 0x34]
mov edx, dword [eax]
lea esi, [esp + 0x30]
push esi
push 0
push 0
push 0
push 0
push 0
push 0
push ecx
push eax
call dword [edx + 0xc]
mov ecx, dword [esp + 0x38]
test ecx, ecx
mov esi, eax
mov dword [esp + 0x414], 0xffffffff
je 0x403f69
call fcn.00403db0
test esi, esi
jge 0x403f87
mov eax, dword [esp + 0x34]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
call dword [sym.imp.ole32.dll_CoUninitialize]
mov eax, 0xfffffffe
jmp 0x40473b
mov edx, dword [esp + 0x30]
push 0
push 0
push 3
push 3
push 0
push 0
push 0xa
push edx
call dword [sym.imp.ole32.dll_CoSetProxyBlanket]
test eax, eax
jge 0x403fc8
mov eax, dword [esp + 0x30]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [esp + 0x34]
mov edx, dword [eax]
push eax
call dword [edx + 8]
call dword [sym.imp.ole32.dll_CoUninitialize]
mov eax, 0xfffffffe
jmp 0x40473b
mov eax, dword [ebx*8 + 0x42881c]
push eax
lea ecx, [esp + 0x44]
mov dword [esp + 0x40], 0
call fcn.004032a0
mov esi, eax
push 0x4289f0
lea ecx, [esp + 0x3c]
mov dword [esp + 0x418], 1
call fcn.004032a0
mov ecx, dword [esi]
test ecx, ecx
mov byte [esp + 0x414], 2
je 0x40400e
mov ecx, dword [ecx]
jmp 0x404010
xor ecx, ecx
mov eax, dword [eax]
test eax, eax
je 0x40401a
mov edx, dword [eax]
jmp 0x40401c
xor edx, edx
mov eax, dword [esp + 0x30]
mov esi, dword [eax]
lea ebx, [esp + 0x3c]
push ebx
push 0
push 0x30
push ecx
push edx
push eax
call dword [esi + 0x50]
lea ecx, [esp + 0x38]
mov esi, eax
call fcn.00403e40
lea ecx, [esp + 0x40]
mov dword [esp + 0x414], 0xffffffff
call fcn.00403e40
test esi, esi
jge 0x404078
mov eax, dword [esp + 0x30]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [esp + 0x34]
mov edx, dword [eax]
push eax
call dword [edx + 8]
call dword [sym.imp.ole32.dll_CoUninitialize]
mov eax, 0xfffffffd
jmp 0x40473b
mov ecx, dword [esp + 0x3c]
test ecx, ecx
je 0x404709
mov ebx, dword [sym.imp.OLEAUT32.dll_VariantClear]
lea ebx, [ebx]
mov eax, dword [esp + 0x2c]
xor esi, esi
cmp eax, esi
mov dword [esp + 0x14], esi
mov dword [esp + 0x48], esi
je 0x4040c0
cmp edi, 8
mov eax, 8
jg 0x4040ae
mov eax, edi
mov edx, dword [esp + 0x10]
and edx, 0xff
cmp edx, eax
jge 0x404709
mov eax, dword [ecx]
lea edx, [esp + 0x48]
push edx
lea edx, [esp + 0x18]
push edx
push 1
push 0xffffffffffffffff
push ecx
call dword [eax + 0x10]
cmp dword [esp + 0x48], esi
je 0x404705
lea eax, [esp + 0x18]
push eax
call ebx
push str.PhysicalAdapter
lea ecx, [esp + 0x44]
call fcn.004032a0
mov eax, dword [eax]
cmp eax, esi
mov dword [esp + 0x414], 3
je 0x404108
mov eax, dword [eax]
jmp 0x40410a
xor eax, eax
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx]
push esi
push esi
lea esi, [esp + 0x20]
push esi
push 0
push eax
push ecx
call dword [edx + 0x10]
or esi, 0xffffffff
lea ecx, [esp + 0x40]
mov dword [esp + 0x414], esi
call fcn.00403e40
cmp word [esp + 0x18], 0xb
jne 0x40415b
cmp word [esp + 0x20], 0
jne 0x40415b
lea eax, [esp + 0x18]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
jmp 0x4046f7
lea edx, [esp + 0x18]
push edx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
lea eax, [esp + 0x18]
push eax
call ebx
push str.Manufacturer
lea ecx, [esp + 0x3c]
call fcn.004032a0
mov eax, dword [eax]
test eax, eax
mov dword [esp + 0x414], 4
je 0x404190
mov eax, dword [eax]
jmp 0x404192
xor eax, eax
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx]
push 0
push 0
lea edi, [esp + 0x20]
push edi
push 0
push eax
push ecx
call dword [edx + 0x10]
lea ecx, [esp + 0x38]
mov dword [esp + 0x414], esi
call fcn.00403e40
mov ax, word [esp + 0x18]
cmp ax, 1
je 0x404233
cmp ax, 8
jne 0x404233
mov eax, dword [esp + 0x20]
push eax
lea ecx, [esp + 0x60]
call fcn.004034f0
mov ecx, dword [esp + 0x10]
mov edx, dword [eax]
mov eax, dword [esp + 0x2c]
and ecx, 0xff
imul ecx, ecx, 0x338
lea eax, [ecx + eax + 0x228]
mov esi, 0x104
sub edx, eax
jmp 0x404200
lea ecx, [esi - 1]
test ecx, ecx
je 0x404216
mov cl, byte [eax + edx]
test cl, cl
je 0x404216
mov byte [eax], cl
inc eax
dec esi
jne 0x404200
jmp 0x40421a
test esi, esi
jne 0x40421b
dec eax
mov byte [eax], 0
mov eax, dword [esp + 0x5c]
lea edx, [esp + 0x60]
cmp eax, edx
je 0x404233
push eax
call fcn.0041941d
add esp, 4
mov edi, dword [sym.imp.OLEAUT32.dll_VariantCopy]
lea eax, [esp + 0x18]
push eax
call edi
lea ecx, [esp + 0x18]
push ecx
call ebx
push str.AdapterType
lea ecx, [esp + 0x5c]
call fcn.004032a0
mov eax, dword [eax]
test eax, eax
mov dword [esp + 0x414], 5
je 0x40426a
mov eax, dword [eax]
jmp 0x40426c
xor eax, eax
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx]
push 0
push 0
lea esi, [esp + 0x20]
push esi
push 0
push eax
push ecx
call dword [edx + 0x10]
lea ecx, [esp + 0x58]
mov dword [esp + 0x414], 0xffffffff
call fcn.00403e40
mov ax, word [esp + 0x18]
cmp ax, 1
je 0x404310
cmp ax, 8
jne 0x404310
mov eax, dword [esp + 0x20]
push eax
lea ecx, [esp + 0x168]
call fcn.004034f0
mov ecx, dword [esp + 0x10]
mov edx, dword [eax]
mov eax, dword [esp + 0x2c]
and ecx, 0xff
imul ecx, ecx, 0x338
add eax, ecx
mov esi, 0x20
sub edx, eax
lea ecx, [esi - 1]
test ecx, ecx
je 0x4042ed
mov cl, byte [edx + eax]
test cl, cl
je 0x4042ed
mov byte [eax], cl
inc eax
dec esi
jne 0x4042d7
jmp 0x4042f1
test esi, esi
jne 0x4042f2
dec eax
mov byte [eax], 0
mov eax, dword [esp + 0x164]
lea edx, [esp + 0x168]
cmp eax, edx
je 0x404310
push eax
call fcn.0041941d
add esp, 4
lea eax, [esp + 0x18]
push eax
call edi
lea ecx, [esp + 0x18]
push ecx
call ebx
push str.GUID
lea ecx, [esp + 0x50]
call fcn.004032a0
mov eax, dword [eax]
test eax, eax
mov dword [esp + 0x414], 6
je 0x404341
mov eax, dword [eax]
jmp 0x404343
xor eax, eax
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx]
push 0
push 0
lea esi, [esp + 0x20]
push esi
push 0
push eax
push ecx
call dword [edx + 0x10]
lea ecx, [esp + 0x4c]
mov dword [esp + 0x414], 0xffffffff
call fcn.00403e40
mov ax, word [esp + 0x18]
cmp ax, 1
je 0x4043e2
cmp ax, 8
jne 0x4043e2
mov eax, dword [esp + 0x20]
push eax
lea ecx, [esp + 0xe4]
call fcn.004034f0
mov edx, dword [esp + 0x10]
mov ecx, dword [eax]
mov eax, dword [esp + 0x2c]
and edx, 0xff
imul edx, edx, 0x338
mov esi, 0x104
lea eax, [edx + eax + 0x20]
mov edi, edi
mov dl, byte [ecx]
test dl, dl
je 0x4043bf
mov byte [eax], dl
inc eax
inc ecx
dec esi
jne 0x4043b0
jmp 0x4043c3
test esi, esi
jne 0x4043c4
dec eax
mov byte [eax], 0
mov eax, dword [esp + 0xe0]
lea ecx, [esp + 0xe4]
cmp eax, ecx
je 0x4043e2
push eax
call fcn.0041941d
add esp, 4
lea edx, [esp + 0x18]
push edx
call edi
lea eax, [esp + 0x18]
push eax
call ebx
push str.Description
lea ecx, [esp + 0x58]
call fcn.004032a0
mov eax, dword [eax]
test eax, eax
mov dword [esp + 0x414], 7
je 0x404413
mov eax, dword [eax]
jmp 0x404415
xor eax, eax
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx]
push 0
push 0
lea esi, [esp + 0x20]
push esi
push 0
push eax
push ecx
call dword [edx + 0x10]
lea ecx, [esp + 0x54]
mov dword [esp + 0x414], 0xffffffff
call fcn.00403e40
mov ax, word [esp + 0x18]
cmp ax, 1
je 0x4044be
cmp ax, 8
jne 0x4044be
mov eax, dword [esp + 0x20]
push eax
lea ecx, [esp + 0x2f4]
call fcn.004034f0
mov ecx, dword [esp + 0x10]
mov edx, dword [eax]
mov eax, dword [esp + 0x2c]
and ecx, 0xff
imul ecx, ecx, 0x338
lea eax, [ecx + eax + 0x124]
mov esi, 0x104
sub edx, eax
lea ecx, [esi - 1]
test ecx, ecx
je 0x40449b
mov cl, byte [eax + edx]
test cl, cl
je 0x40449b
mov byte [eax], cl
inc eax
dec esi
jne 0x404485
jmp 0x40449f
test esi, esi
jne 0x4044a0
dec eax
mov byte [eax], 0
mov eax, dword [esp + 0x2f0]
lea edx, [esp + 0x2f4]
cmp eax, edx
je 0x4044be
push eax
call fcn.0041941d
add esp, 4
lea eax, [esp + 0x18]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
lea ecx, [esp + 0x18]
push ecx
call ebx
mov eax, dword [esp + 0x14]
mov edx, dword [eax]
push 0
push 0
lea ecx, [esp + 0x20]
push ecx
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx*8 + 0x428820]
push 0
push ecx
push eax
call dword [edx + 0x10]
mov edx, dword [esp + 0x20]
xor eax, eax
mov ecx, 0x20
lea edi, [esp + 0x380]
rep stosd dword es:[edi], eax
push edx
lea ecx, [esp + 0x270]
call fcn.004034f0
mov ecx, dword [eax]
lea eax, [esp + 0x380]
mov edx, eax
mov esi, 0x80
sub ecx, edx
mov dl, byte [eax + ecx]
test dl, dl
je 0x404532
mov byte [eax], dl
inc eax
dec esi
jne 0x404523
jmp 0x404536
test esi, esi
jne 0x404537
dec eax
mov byte [eax], 0
mov eax, dword [esp + 0x26c]
lea ecx, [esp + 0x270]
cmp eax, ecx
je 0x404555
push eax
call fcn.0041941d
add esp, 4
lea edx, [esp + 0x18]
push edx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x4046e6
mov ecx, dword [esp + 0x10]
and ecx, 0xff
push eax
lea edx, [esp + 0x384]
call fcn.00403600
add esp, 4
test eax, eax
jne 0x4046e6
lea eax, [esp + 0x18]
push eax
call ebx
push str.MACAddress
lea ecx, [esp + 0x54]
call fcn.004032a0
mov eax, dword [eax]
test eax, eax
mov dword [esp + 0x414], 8
je 0x4045b8
mov ecx, dword [eax]
jmp 0x4045ba
xor ecx, ecx
mov eax, dword [esp + 0x14]
mov edx, dword [eax]
push 0
push 0
lea esi, [esp + 0x20]
push esi
push 0
push ecx
push eax
call dword [edx + 0x10]
lea ecx, [esp + 0x50]
mov dword [esp + 0x414], 0xffffffff
call fcn.00403e40
xor eax, eax
mov ecx, 0x20
lea edi, [esp + 0x380]
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x20]
push eax
lea ecx, [esp + 0x1ec]
call fcn.004034f0
mov ecx, dword [eax]
lea eax, [esp + 0x380]
mov edx, eax
mov esi, 0x80
sub ecx, edx
mov dl, byte [ecx + eax]
test dl, dl
je 0x404626
mov byte [eax], dl
inc eax
dec esi
jne 0x404617
jmp 0x40462a
test esi, esi
jne 0x40462b
dec eax
mov byte [eax], 0
mov eax, dword [esp + 0x1e8]
lea ecx, [esp + 0x1ec]
cmp eax, ecx
je 0x404649
push eax
call fcn.0041941d
add esp, 4
lea edx, [esp + 0x18]
push edx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
xor eax, eax
mov dword [esp + 0x374], eax
mov dword [esp + 0x378], eax
mov word [esp + 0x37c], ax
xor edi, edi
lea ebx, [esp + 0x381]
mov esi, dword [esp + 0x10]
mov cl, byte [ebx - 1]
mov dl, byte [ebx]
xor eax, eax
test esi, esi
setne al
push 0x10
mov byte [esp + 0x378], cl
lea ecx, [esp + 0x378]
push 0
push ecx
mov byte [esp + 0x381], dl
mov esi, eax
call fcn.0041a62c
imul esi, esi, 0x338
add esi, dword [esp + 0x38]
add esp, 0xc
mov byte [esi + edi + 0x332], al
inc edi
add ebx, 3
cmp edi, 6
jl 0x404675
mov eax, dword [esp + 0x44]
mov esi, dword [esp + 0x10]
mov ebx, dword [sym.imp.OLEAUT32.dll_VariantClear]
lea ecx, [eax + 0x10]
mov edx, 1
shl edx, cl
add esi, edx
inc eax
mov dword [esp + 0x10], esi
mov dword [esp + 0x44], eax
inc dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov edi, dword [ebp + 0x10]
mov ecx, dword [esp + 0x3c]
test ecx, ecx
jne 0x404090
jmp 0x404709
mov ecx, dword [esp + 0x3c]
mov edx, dword [ecx]
push ecx
call dword [edx + 8]
mov eax, dword [esp + 0x30]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [esp + 0x34]
mov edx, dword [eax]
push eax
call dword [edx + 8]
call dword [sym.imp.ole32.dll_CoUninitialize]
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x10]
shl eax, 8
add eax, ecx
jmp 0x40473b
or eax, 0xffffffff
mov ecx, dword [esp + 0x40c]
mov dword fs:[0], ecx
mov ecx, dword [esp + 0x404]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004199fa
mov esp, ebp
pop ebp
ret