Function at 0x42d450
Capabilities:
Get common file path

Disassembly:
push 0xffffffffffffffff
push 0x57a1f0
mov eax, dword fs:[0]
push eax
sub esp, 0x34c
mov eax, dword [0x60bd28]
xor eax, esp
mov dword [esp + 0x348], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x60bd28]
xor eax, esp
push eax
lea eax, [esp + 0x360]
mov dword fs:[0], eax
mov ebx, dword [esp + 0x370]
push ecx
xor esi, esi
mov dword [esp + 0x90], esi
mov ecx, esp
mov dword [esp + 0x18], esp
push str.Win32_BaseBoard
mov dword [esp + 0x3c], ebx
call fcn.00402a30
lea ecx, [esp + 0x6c]
call fcn.0047c0a0
lea ecx, [esp + 0x68]
mov dword [esp + 0x368], esi
call fcn.0047c5d0
test eax, eax
je 0x42f2c1
lea eax, [esp + 0x11c]
push eax
push str.Manufacturer
lea ecx, [esp + 0x70]
call fcn.0047bce0
test eax, eax
je 0x42d56c
mov ecx, dword [esp + 0x124]
push ecx
lea ecx, [esp + 0x18]
call fcn.00409240
mov ecx, eax
mov byte [esp + 0x368], 1
call fcn.0040c3f0
mov ecx, eax
call fcn.0040be60
mov ecx, dword [eax]
lea edi, [ebx + 0x140]
mov edx, edi
mov al, byte [ecx]
mov byte [edx], al
add ecx, 1
add edx, 1
test al, al
jne 0x42d520
mov byte [esp + 0x368], al
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x42d555
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
add edi, 0xffffffff
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x42d558
mov cx, word [0x596424]
mov word [edi], cx
lea edx, [esp + 0x13c]
push edx
push str.Product
lea ecx, [esp + 0x70]
call fcn.0047bce0
test eax, eax
je 0x42d62b
mov eax, dword [esp + 0x144]
push eax
lea ecx, [esp + 0x18]
call fcn.00409240
mov ecx, eax
mov byte [esp + 0x368], 2
call fcn.0040c3f0
mov ecx, eax
call fcn.0040be60
mov eax, dword [eax]
lea ebp, [ebx + 0x140]
mov ecx, eax
jmp 0x42d5c0
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x42d5c0
mov edi, ebp
sub eax, ecx
mov esi, ecx
add edi, 0xffffffff
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x42d5d2
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [esp + 0x14]
and ecx, 3
add eax, 0xfffffff0
rep movsb byte es:[edi], byte [esi]
mov byte [esp + 0x368], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42d612
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
add ebp, 0xffffffff
mov edi, ebp
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x42d617
mov cx, word [0x596424]
mov word [edi], cx
lea edx, [esp + 0xec]
push edx
push str.Version
lea ecx, [esp + 0x70]
call fcn.0047bce0
test eax, eax
je 0x42d6d0
mov eax, dword [esp + 0xf4]
push eax
lea ecx, [esp + 0x18]
call fcn.00409240
mov ecx, eax
mov byte [esp + 0x368], 3
call fcn.0040c3f0
mov ecx, eax
call fcn.0040be60
mov eax, dword [eax]
mov ecx, eax
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x42d674
lea edi, [ebx + 0x140]
sub eax, ecx
mov esi, ecx
add edi, 0xffffffff
lea ebx, [ebx]
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x42d690
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [esp + 0x14]
and ecx, 3
add eax, 0xfffffff0
rep movsb byte es:[edi], byte [esi]
mov byte [esp + 0x368], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42d6d0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push str.Win32_BIOS
call fcn.00402a30
lea ecx, [esp + 0x6c]
call fcn.0047c170
test eax, eax
je 0x42d811
lea ecx, [esp + 0x68]
call fcn.0047c5d0
test eax, eax
je 0x42d811
lea ecx, [esp + 0xfc]
push ecx
push str.Manufacturer
lea ecx, [esp + 0x70]
call fcn.0047bce0
test eax, eax
je 0x42d786
mov edx, dword [esp + 0x104]
push edx
lea ecx, [esp + 0x18]
call fcn.00409240
mov ecx, eax
mov byte [esp + 0x368], 5
call fcn.0040c3f0
mov ecx, eax
call fcn.0040be60
mov ecx, dword [eax]
lea esi, [ebx + 0x240]
mov edx, esi
mov edi, edi
mov al, byte [ecx]
mov byte [edx], al
add ecx, 1
add edx, 1
test al, al
jne 0x42d750
lea ecx, [esp + 0x14]
mov byte [esp + 0x368], al
call fcn.00401340
add esi, 0xffffffff
mov al, byte [esi + 1]
add esi, 1
test al, al
jne 0x42d771
mov ax, word [0x596424]
mov edi, esi
mov word [edi], ax
lea ecx, [esp + 0x12c]
push ecx
push str.Name
lea ecx, [esp + 0x70]
call fcn.0047bce0
test eax, eax
je 0x42d857
mov edx, dword [esp + 0x134]
push edx
lea ecx, [esp + 0x18]
call fcn.00409240
mov ecx, eax
mov byte [esp + 0x368], 6
call fcn.0040c3f0
mov ecx, eax
call fcn.0040be60
mov eax, dword [eax]
mov ecx, eax
nop
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x42d7d0
lea edi, [ebx + 0x240]
sub eax, ecx
mov esi, ecx
add edi, 0xffffffff
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x42d7e6
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x14]
mov byte [esp + 0x368], 0
call fcn.00401340
jmp 0x42d857
push 2
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push 0x596192
call fcn.00402a30
push ecx
mov ecx, esp
mov dword [esp + 0x28], esp
push str.Win32_BIOS
mov byte [esp + 0x378], 7
call fcn.00402a30
lea ecx, [esp + 0x44]
mov byte [esp + 0x374], 0
call fcn.0043bcd0
lea ecx, [esp + 0x38]
call fcn.0043a600
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
lea esi, [ebx + 0x9c0]
lea edi, [ebx + 0x7c0]
lea ebp, [ebx + 0xac0]
push str.Win32_VideoController
mov dword [esi], 0x612f6e
mov dword [edi], 0x612f6e
mov dword [ebp], 0x612f6e
call fcn.00402a30
lea ecx, [esp + 0x6c]
call fcn.0047c170
test eax, eax
je 0x42e2d5
lea ecx, [esp + 0x68]
call fcn.0047c5d0
test eax, eax
je 0x42e2d5
lea eax, [esp + 0xcc]
push eax
push str.DriverVersion
lea ecx, [esp + 0x70]
call fcn.0047bce0
test eax, eax
je 0x42d938
mov ecx, dword [esp + 0xd4]
push ecx
lea ecx, [esp + 0x20]
call fcn.00409240
mov ecx, eax
mov byte [esp + 0x368], 8
call fcn.0040c3f0
mov ecx, eax
call fcn.0040be60
mov eax, dword [eax]
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push eax
call fcn.00402a30
lea edx, [esp + 0x18]
push edx
call fcn.0042d190
mov ecx, dword [eax]
add esp, 8
mov edx, esi
mov al, byte [ecx]
mov byte [edx], al
add ecx, 1
add edx, 1
test al, al
jne 0x42d910
lea ecx, [esp + 0x14]
call fcn.00401340
lea ecx, [esp + 0x1c]
mov byte [esp + 0x368], 0
call fcn.00401340
cmp dword [esp + 0xd4], 0
jne 0x42d9be
push 5
push 0
lea ecx, [esp + 0x1c]
call fcn.00409240
mov bl, 9
mov ecx, eax
mov byte [esp + 0x36c], bl
call fcn.0040c3f0
mov ecx, eax
call fcn.0040be60
mov eax, dword [eax]
push ecx
mov ecx, esp
mov dword [esp + 0x24], esp
push eax
call fcn.00402a30
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push 0x596ff4
mov byte [esp + 0x378], 0xa
call fcn.00402a30
lea ecx, [esp + 0x5c]
mov byte [esp + 0x374], bl
call fcn.0043bcd0
lea ecx, [esp + 0x50]
call fcn.0043a600
lea ecx, [esp + 0x14]
mov byte [esp + 0x368], 0
call fcn.00401340
jmp 0x42da04
push 2
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push str.NULL_VAL
call fcn.00402a30
push ecx
mov ecx, esp
mov dword [esp + 0x28], esp
push 0x596ff4
mov byte [esp + 0x378], 0xb
call fcn.00402a30
lea ecx, [esp + 0x5c]
mov byte [esp + 0x374], 0
call fcn.0043bcd0
lea ecx, [esp + 0x50]
call fcn.0043a600
push 0x104
lea eax, [esp + 0x150]
push eax
push str.GraphicCardTest
push str.SOFTWARE_NERO_INTERNAL
push reloc.OLEAUT32.dll_SysReAllocString
xor esi, esi
call fcn.00425d50
add esp, 0x14
test al, al
je 0x42db69
lea ecx, [esp + 0x14c]
push ecx
lea ecx, [esp + 0x30]
call fcn.00402a30
mov bl, 0xc
lea ecx, [esp + 0x2c]
mov byte [esp + 0x368], bl
call fcn.0040c3f0
mov ecx, eax
call fcn.0040be60
mov edx, dword [esp + 0x2c]
cmp dword [edx - 0xc], esi
jle 0x42db50
lea eax, [esp + 0x14c]
push eax
lea ecx, [esp + 0x20]
call fcn.00402a30
mov ecx, eax
mov byte [esp + 0x368], 0xd
call fcn.0040c3f0
mov ecx, eax
call fcn.0040be60
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push eax
call fcn.00402120
lea ecx, [esp + 0x18]
push ecx
call fcn.0042d190
mov ecx, dword [eax]
add esp, 8
mov edx, edi
mov edi, edi
mov al, byte [ecx]
mov byte [edx], al
add ecx, 1
add edx, 1
test al, al
jne 0x42dab0
lea ecx, [esp + 0x14]
call fcn.00401340
lea ecx, [esp + 0x1c]
mov byte [esp + 0x368], bl
call fcn.00401340
push 5
lea edx, [esp + 0x150]
push edx
lea ecx, [esp + 0x1c]
call fcn.00402a30
mov bl, 0xe
mov ecx, eax
mov byte [esp + 0x36c], bl
call fcn.0040c3f0
mov ecx, eax
call fcn.0040be60
mov eax, dword [eax]
push ecx
mov ecx, esp
mov dword [esp + 0x24], esp
push eax
call fcn.00402a30
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push str.Driver_Caption___Test
mov byte [esp + 0x378], 0xf
call fcn.00402a30
lea ecx, [esp + 0x5c]
mov byte [esp + 0x374], bl
call fcn.0043bcd0
lea ecx, [esp + 0x50]
call fcn.0043a600
lea ecx, [esp + 0x14]
call fcn.00401340
mov esi, 1
lea ecx, [esp + 0x2c]
mov byte [esp + 0x368], 0
call fcn.00401340
test esi, esi
jne 0x42dc74
lea eax, [esp + 0xac]
push eax
push str.Caption
lea ecx, [esp + 0x70]
call fcn.0047bce0
test eax, eax
je 0x42dc74
mov ecx, dword [esp + 0xb4]
push ecx
lea ecx, [esp + 0x20]
call fcn.00409240
mov ecx, eax
mov byte [esp + 0x368], 0x10
call fcn.0040c3f0
mov ecx, eax
call fcn.0040be60
mov eax, dword [eax]
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push eax
call fcn.00402a30
lea edx, [esp + 0x18]
push edx
call fcn.0042d190
mov ecx, dword [eax]
add esp, 8
mov edx, edi
mov edi, edi
mov al, byte [ecx]
mov byte [edx], al
add ecx, 1
add edx, 1
test al, al
jne 0x42dbd0
lea ecx, [esp + 0x14]
call fcn.00401340
lea ecx, [esp + 0x1c]
mov byte [esp + 0x368], 0
call fcn.00401340
mov eax, dword [esp + 0xb4]
push 5
push eax
lea ecx, [esp + 0x1c]
call fcn.00409240
mov bl, 0x11
mov ecx, eax
mov byte [esp + 0x36c], bl
call fcn.0040c3f0
mov ecx, eax
call fcn.0040be60
mov eax, dword [eax]
push ecx
mov ecx, esp
mov dword [esp + 0x24], esp
push eax
call fcn.00402a30
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push str.Driver_Caption
mov byte [esp + 0x378], 0x12
call fcn.00402a30
lea ecx, [esp + 0x5c]
mov byte [esp + 0x374], bl
call fcn.0043bcd0
lea ecx, [esp + 0x50]
call fcn.0043a600
lea ecx, [esp + 0x14]
mov byte [esp + 0x368], 0
call fcn.00401340
lea ecx, [esp + 0xbc]
push ecx
push str.InstalledDisplayDrivers
lea ecx, [esp + 0x70]
call fcn.0047bce0
test eax, eax
je 0x42dcff
mov edx, dword [esp + 0xc4]
push edx
lea ecx, [esp + 0x20]
call fcn.00409240
mov ecx, eax
mov byte [esp + 0x368], 0x13
call fcn.0040c3f0
mov ecx, eax
call fcn.0040be60
mov eax, dword [eax]
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push eax
call fcn.00402a30
lea eax, [esp + 0x18]
push eax
call fcn.0042d190
mov ecx, dword [eax]
add esp, 8
mov edx, ebp
mov al, byte [ecx]
mov byte [edx], al
add ecx, 1
add edx, 1
test al, al
jne 0x42dcd5
lea ecx, [esp + 0x14]
call fcn.00401340
lea ecx, [esp + 0x1c]
mov byte [esp + 0x368], 0
call fcn.00401340
jmp 0x42dd06
mov dword [ebp], 0x612f6e
mov ecx, dword [esp + 0xc4]
push 5
push ecx
lea ecx, [esp + 0x1c]
call fcn.00409240
mov ecx, eax
mov byte [esp + 0x36c], 0x14
call fcn.0040c3f0
mov ecx, eax
call fcn.0040be60
mov eax, dword [eax]
push ecx
mov ecx, esp
mov dword [esp + 0x24], esp
push eax
call fcn.00402a30
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push 0x59ad00
mov byte [esp + 0x378], 0x15
call fcn.00402a30
lea ecx, [esp + 0x5c]
mov byte [esp + 0x374], 0x14
call fcn.0043bcd0
lea ecx, [esp + 0x50]
call fcn.0043a600
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
mov byte [esp + 0x368], 0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x42dd99
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x34]
push 0x104
lea ecx, [esp + 0x258]
add eax, 0xbc0
push ecx
mov byte [eax], 0
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
lea ecx, [esp + 0x38]
call fcn.005167d7
push 0
push 0
lea edx, [esp + 0x40]
push edx
push ecx
mov ecx, esp
mov dword [esp + 0x24], esp
push 0x5995c8
mov byte [esp + 0x37c], 0x16
call fcn.00402a30
push ecx
mov ecx, esp
mov dword [esp + 0x30], esp
push ebp
mov byte [esp + 0x380], 0x17
call fcn.00402a30
mov byte [esp + 0x37c], 0x16
call fcn.00426df0
xor ebp, ebp
add esp, 0x14
cmp dword [esp + 0x40], ebp
mov dword [esp + 0x14], ebp
jle 0x42e1b9
lea eax, [esp + 0x254]
push eax
lea ecx, [esp + 0x24]
call fcn.00402a30
push 1
push 0x5961cc
lea ecx, [esp + 0x28]
mov byte [esp + 0x370], 0x18
call fcn.004086f0
test ebp, ebp
jl 0x42e2d0
cmp ebp, dword [esp + 0x40]
jge 0x42e2d0
mov ecx, dword [esp + 0x3c]
mov eax, dword [ecx + ebp*4]
sub eax, 0x10
push eax
call fcn.00401b70
add eax, 0x10
add esp, 4
mov dword [esp + 0x2c], eax
lea ecx, [esp + 0x2c]
mov byte [esp + 0x368], 0x19
call fcn.0040c3f0
mov ecx, eax
call fcn.0040be60
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea ecx, [esp + 0x28]
call fcn.004086f0
mov eax, dword [esp + 0x20]
push 5
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x24], esp
mov esi, esp
push eax
call fcn.00401b70
add eax, 0x10
mov dword [esi], eax
mov ecx, esp
mov dword [esp + 0x34], esp
push str.Driver_FullPath
mov byte [esp + 0x378], 0x1a
call fcn.00402a30
lea ecx, [esp + 0x5c]
mov byte [esp + 0x374], 0x19
call fcn.0043bcd0
lea ecx, [esp + 0x50]
call fcn.0043a600
lea edx, [esp + 0x20]
push edx
call fcn.0042b480
add esp, 4
test al, al
je 0x42e158
push 5
push ecx
mov ecx, esp
mov dword [esp + 0x24], esp
push 0x596192
call fcn.00402a30
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push str.Driver_File_Exist
mov byte [esp + 0x378], 0x1b
call fcn.00402a30
lea ecx, [esp + 0x5c]
mov byte [esp + 0x374], 0x19
call fcn.0043bcd0
lea ecx, [esp + 0x50]
call fcn.0043a600
call fcn.00512f10
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x42e1cf
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
lea ebx, [eax + 0x10]
mov dword [esp + 0x1c], ebx
mov byte [esp + 0x368], 0x1c
call fcn.00512f10
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x42e1cf
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
lea edi, [eax + 0x10]
mov dword [esp + 0x28], edi
mov byte [esp + 0x368], 0x1d
call fcn.00512f10
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x42e1cf
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
lea esi, [eax + 0x10]
mov dword [esp + 0x90], esi
mov eax, dword [esi - 8]
mov ecx, 1
sub ecx, dword [esi - 4]
sub eax, 0x105
or eax, ecx
mov byte [esp + 0x368], 0x1e
jge 0x42dff2
push 0x105
lea ecx, [esp + 0x94]
call fcn.00401b20
mov esi, dword [esp + 0x90]
mov edx, 0x105
cmp dword [esi - 8], edx
jl 0x42e1d9
mov dword [esi - 0xc], edx
mov byte [esi + 0x105], 0
mov eax, dword [edi - 8]
mov ecx, 1
sub ecx, dword [edi - 4]
sub eax, edx
or eax, ecx
jge 0x42e02e
push edx
lea ecx, [esp + 0x2c]
call fcn.00401b20
mov edi, dword [esp + 0x28]
mov edx, 0x105
cmp dword [edi - 8], edx
jl 0x42e1d9
mov dword [edi - 0xc], edx
mov byte [edi + 0x105], 0
mov eax, dword [ebx - 8]
mov ecx, 1
sub ecx, dword [ebx - 4]
sub eax, edx
or eax, ecx
jge 0x42e069
push 0x105
lea ecx, [esp + 0x20]
call fcn.00401b20
mov ebx, dword [esp + 0x1c]
mov edx, 0x105
cmp dword [ebx - 8], edx
jl 0x42e1d9
push esi
mov dword [ebx - 0xc], 0x105
push edi
mov byte [ebx + 0x105], 0
mov ecx, dword [esp + 0x28]
push ebx
push ecx
call fcn.0042a300
add esp, 0x10
test al, al
je 0x42e0ec
push 5
push ecx
lea eax, [esi - 0x10]
mov dword [esp + 0x2c], esp
mov ebp, esp
push eax
call fcn.00401b70
add eax, 0x10
mov dword [ebp], eax
mov ecx, esp
mov dword [esp + 0x24], esp
push str.DriverManf
mov byte [esp + 0x378], 0x1f
call fcn.00402a30
lea ecx, [esp + 0x5c]
mov byte [esp + 0x374], 0x1e
call fcn.0043bcd0
lea ecx, [esp + 0x50]
call fcn.0043a600
cmp dword [esi - 0xc], 0
jg 0x42e1e3
mov ebp, dword [esp + 0x14]
lea eax, [esi - 0x10]
mov byte [esp + 0x368], 0x1d
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x42e110
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [edi - 0x10]
mov byte [esp + 0x368], 0x1c
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42e134
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [ebx - 0x10]
mov byte [esp + 0x368], 0x19
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42e158
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
mov byte [esp + 0x368], 0x18
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42e180
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
mov byte [esp + 0x368], 0x16
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42e1a8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
add ebp, 1
cmp ebp, dword [esp + 0x40]
mov dword [esp + 0x14], ebp
jl 0x42de18
lea ecx, [esp + 0x38]
mov byte [esp + 0x368], 0
call fcn.00516b0e
jmp 0x42e31b
push 0x80004005
call fcn.00401010
push 0x80070057
call fcn.00401010
mov edx, dword [esp + 0x34]
add edx, 0xbc0
mov eax, esi
sub edx, esi
mov cl, byte [eax]
mov byte [eax + edx], cl
add eax, 1
test cl, cl
jne 0x42e1f1
add esi, 0xfffffff0
mov byte [esp + 0x368], 0x1d
lea ecx, [esi + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42e221
mov ecx, dword [esi]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push esi
call edx
add edi, 0xfffffff0
mov byte [esp + 0x368], 0x1c
lea eax, [edi + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x42e245
mov ecx, dword [edi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push edi
call eax
add ebx, 0xfffffff0
mov byte [esp + 0x368], 0x19
lea ecx, [ebx + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42e269
mov ecx, dword [ebx]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push ebx
call edx
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
mov byte [esp + 0x368], 0x18
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42e291
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
mov byte [esp + 0x368], 0x16
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42e1b9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x38]
mov byte [esp + 0x368], 0
call fcn.00516b0e
jmp 0x42e31b
jmp fcn.0050b21f
push 2
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push 0x596192
call fcn.00402a30
push ecx
mov ecx, esp
mov dword [esp + 0x30], esp
push str.Win32_VideoController
mov byte [esp + 0x378], 0x20
call fcn.00402a30
lea ecx, [esp + 0x44]
mov byte [esp + 0x374], 0
call fcn.0043bcd0
lea ecx, [esp + 0x38]
call fcn.0043a600
mov edi, dword [esp + 0x34]
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push str.Win32_Processor
call fcn.00402a30
lea ecx, [esp + 0x6c]
call fcn.0047c170
test eax, eax
je 0x42e46b
lea ecx, [esp + 0x68]
call fcn.0047c5d0
test eax, eax
je 0x42e46b
lea ecx, [esp + 0x10c]
push ecx
push str.Name
lea ecx, [esp + 0x70]
call fcn.0047bce0
test eax, eax
je 0x42e418
mov edx, dword [esp + 0x114]
push edx
lea ecx, [esp + 0x18]
call fcn.00409240
mov ecx, eax
mov byte [esp + 0x368], 0x21
call fcn.0040c3f0
mov ecx, eax
call fcn.0040be60
mov ecx, dword [eax]
lea esi, [edi + 0x1c0]
mov edx, esi
mov al, byte [ecx]
mov byte [edx], al
add ecx, 1
add edx, 1
test al, al
jne 0x42e3a1
mov byte [esp + 0x368], al
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42e3d6
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 5
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push esi
call fcn.00402a30
push ecx
mov ecx, esp
mov dword [esp + 0x30], esp
push str.Win32_Processor_Name
mov byte [esp + 0x378], 0x22
call fcn.00402a30
lea ecx, [esp + 0x44]
mov byte [esp + 0x374], 0
call fcn.0043bcd0
lea ecx, [esp + 0x38]
call fcn.0043a600
lea ecx, [esp + 0xdc]
push ecx
push str.CurrentClockSpeed
lea ecx, [esp + 0x70]
call fcn.0047bce0
test eax, eax
je 0x42e4b1
mov eax, dword [esp + 0xe4]
push 5
push ecx
mov edx, esp
mov dword [esp + 0x20], esp
push eax
push edx
mov dword [edi + 0x452c], eax
call fcn.0043a920
add esp, 4
mov ecx, esp
mov dword [esp + 0x30], esp
mov byte [esp + 0x374], 0x23
push str.Win32_Processor_CurrentClockSpeed
jmp 0x42e492
push 2
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push 0x596192
call fcn.00402a30
push ecx
mov ecx, esp
mov dword [esp + 0x30], esp
mov byte [esp + 0x374], 0x24
push str.Win32_Processor
call fcn.00402a30
lea ecx, [esp + 0x44]
mov byte [esp + 0x374], 0
call fcn.0043bcd0
lea ecx, [esp + 0x38]
call fcn.0043a600
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x6c]
call fcn.0047c370
mov ecx, eax
mov byte [esp + 0x368], 0x25
call fcn.0040c3f0
mov ecx, eax
call fcn.0040be60
mov ecx, dword [eax]
mov edx, edi
lea esp, [esp]
mov al, byte [ecx]
mov byte [edx], al
add ecx, 1
add edx, 1
test al, al
jne 0x42e4e0
mov byte [esp + 0x368], al
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42e515
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 5
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push ecx
lea ecx, [esp + 0x74]
call fcn.0047c370
push ecx
mov ecx, esp
mov dword [esp + 0x30], esp
push str.GetCPUStr
mov byte [esp + 0x378], 0x26
call fcn.00402a30
lea ecx, [esp + 0x44]
mov byte [esp + 0x374], 0
call fcn.0043bcd0
lea ecx, [esp + 0x38]
call fcn.0043a600
lea ecx, [esp + 0x68]
call fcn.0047bc50
push eax
lea edx, [edi + 0x80]
push str._d_MB
push edx
call fcn.00540420
add esp, 0xc
push 5
lea ecx, [esp + 0x6c]
call fcn.0047bc50
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push eax
push ecx
call fcn.0043a920
add esp, 4
mov ecx, esp
mov dword [esp + 0x30], esp
push str.GetPhysicalMemorySize
mov byte [esp + 0x378], 0x27
call fcn.00402a30
lea ecx, [esp + 0x44]
mov byte [esp + 0x374], 0
call fcn.0043bcd0
lea ecx, [esp + 0x38]
call fcn.0043a600
lea ecx, [esp + 0x68]
call fcn.0047bc50
lea edx, [esp + 0x14]
push edx
lea ecx, [esp + 0x6c]
mov dword [edi + 0x4530], eax
call fcn.0047c610
mov ecx, eax
mov byte [esp + 0x368], 0x28
call fcn.0040c3f0
mov ecx, eax
call fcn.0040be60
mov ecx, dword [eax]
lea edx, [edi + 0xc0]
mov al, byte [ecx]
mov byte [edx], al
add ecx, 1
add edx, 1
test al, al
jne 0x42e602
mov byte [esp + 0x368], al
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42e637
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 5
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push ecx
lea ecx, [esp + 0x74]
call fcn.0047c610
push ecx
mov ecx, esp
mov dword [esp + 0x30], esp
push str.GetBusTypeStr
mov byte [esp + 0x378], 0x29
call fcn.00402a30
lea ecx, [esp + 0x44]
mov byte [esp + 0x374], 0
call fcn.0043bcd0
lea ecx, [esp + 0x38]
call fcn.0043a600
push 0x2d50
push 0
add edi, 0x4534
push edi
call fcn.0053fd60
add esp, 8
mov ecx, esp
mov dword [esp + 0x1c], esp
or ebp, 0xffffffff
push str.Win32_DiskDrive
mov dword [esp + 0x34], ebp
call fcn.00402a30
lea ecx, [esp + 0x6c]
call fcn.0047c170
test eax, eax
je 0x42e9be
lea ecx, [esp + 0x68]
call fcn.0047c5d0
test eax, eax
je 0x42e9be
mov edi, dword [esp + 0x34]
add edi, 0x44f0
lea edx, [esp + 0x50]
push edx
push str.PNPDeviceID
lea ecx, [esp + 0x70]
call fcn.0047bce0
test eax, eax
jne 0x42e737
push 2
push ecx
mov eax, esp
mov dword [esp + 0x20], esp
push ebp
push eax
call fcn.0043a920
add esp, 4
mov ecx, esp
mov dword [esp + 0x30], esp
push str.Can_not_read_PNPDeviceID___Win32_DiskDrive._Pos
mov byte [esp + 0x378], 0x2a
call fcn.00402a30
lea ecx, [esp + 0x44]
mov byte [esp + 0x374], 0
call fcn.0043bcd0
lea ecx, [esp + 0x38]
call fcn.0043a600
jmp 0x42e9a9
cmp word [esp + 0x50], 1
je 0x42e9a9
lea ecx, [esp + 0x50]
push ecx
lea ecx, [esp + 0x24]
call fcn.00409180
mov eax, dword [esp + 0x20]
cmp dword [eax - 0xc], 3
mov byte [esp + 0x368], 0x2b
jge 0x42e7ca
push 2
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x20], esp
mov esi, esp
push eax
call fcn.00401b70
add eax, 0x10
mov dword [esi], eax
mov ecx, esp
mov dword [esp + 0x30], esp
push str.Length_less_than_3_chars_PNPDeviceID___Win32_DiskDrive._PNPDeviceID
mov byte [esp + 0x378], 0x2c
call fcn.00402a30
lea ecx, [esp + 0x44]
mov byte [esp + 0x374], 0x2b
call fcn.0043bcd0
lea ecx, [esp + 0x38]
call fcn.0043a600
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
mov byte [esp + 0x368], 0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jmp 0x42e838
lea ecx, [esp + 0x20]
call fcn.00426b70
push 3
lea ecx, [esp + 0x18]
push ecx
lea ecx, [esp + 0x28]
call fcn.00425040
mov eax, dword [eax]
push 0x59ab80
push eax
call fcn.0053fceb
add esp, 8
test eax, eax
mov eax, dword [esp + 0x14]
setne bl
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x42e818
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
mov byte [esp + 0x368], 0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test bl, bl
je 0x42e84d
test edx, edx
jg 0x42e9a9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x42e9a9
test edx, edx
jg 0x42e85b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x50]
push ecx
push str.Model
lea ecx, [esp + 0x70]
add ebp, 1
add edi, 0x244
call fcn.0047bce0
test eax, eax
jne 0x42e8c1
push 2
push ecx
lea edx, [esp + 0x58]
mov ecx, esp
mov dword [esp + 0x20], esp
push edx
call fcn.00409180
push ecx
mov ecx, esp
mov dword [esp + 0x30], esp
push str.Can_not_read_Model___Win32_DiskDrive._PNPDeviceID
mov byte [esp + 0x378], 0x2d
call fcn.00402a30
lea ecx, [esp + 0x44]
mov byte [esp + 0x374], 0
call fcn.0043bcd0
lea ecx, [esp + 0x38]
call fcn.0043a600
lea eax, [esp + 0x50]
push eax
lea ecx, [esp + 0x20]
call fcn.00409180
mov ecx, dword [eax]
lea edx, [edi - 0x200]
mov al, byte [ecx]
mov byte [edx], al
add ecx, 1
add edx, 1
test al, al
jne 0x42e8d7
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42e905
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x50]
push ecx
push str.DeviceID
lea ecx, [esp + 0x70]
call fcn.0047bce0
test eax, eax
jne 0x42e962
push 2
push ecx
lea edx, [esp + 0x58]
mov ecx, esp
mov dword [esp + 0x20], esp
push edx
call fcn.00409180
push ecx
mov ecx, esp
mov dword [esp + 0x30], esp
push str.Can_not_read_DeviceID___Win32_DiskDrive._Model
mov byte [esp + 0x378], 0x2e
call fcn.00402a30
lea ecx, [esp + 0x44]
mov byte [esp + 0x374], 0
call fcn.0043bcd0
lea ecx, [esp + 0x38]
call fcn.0043a600
lea eax, [esp + 0x50]
push eax
lea ecx, [esp + 0x2c]
call fcn.00409180
mov ecx, dword [eax]
mov edx, edi
mov al, byte [ecx]
mov byte [edx], al
add ecx, 1
add edx, 1
test al, al
jne 0x42e974
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42e9a2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [edi + 0x40], 3
lea ecx, [esp + 0x68]
call fcn.0047c5d0
test eax, eax
jne 0x42e6d6
mov dword [esp + 0x2c], ebp
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push str.Win32_CDROMDrive
call fcn.00402a30
lea ecx, [esp + 0x6c]
call fcn.0047c170
test eax, eax
je 0x42edad
lea ecx, [esp + 0x68]
call fcn.0047c5d0
test eax, eax
je 0x42edad
mov ecx, dword [esp + 0x34]
imul ebp, ebp, 0x244
lea edi, [ecx + ebp + 0x4734]
mov ebp, 3
jmp 0x42ea10
lea edx, [esp + 0x50]
push edx
push str.PNPDeviceID
lea ecx, [esp + 0x70]
call fcn.0047bce0
test eax, eax
jne 0x42ea75
push 2
push ecx
mov ecx, dword [esp + 0x34]
mov eax, esp
mov dword [esp + 0x20], esp
push ecx
push eax
call fcn.0043a920
add esp, 4
mov ecx, esp
mov dword [esp + 0x30], esp
push str.Can_not_read_PNPDeviceID___Win32_CDROMDrive._Pos
mov byte [esp + 0x378], 0x2f
call fcn.00402a30
lea ecx, [esp + 0x44]
mov byte [esp + 0x374], 0
call fcn.0043bcd0
lea ecx, [esp + 0x38]
call fcn.0043a600
jmp 0x42ed9c
cmp word [esp + 0x50], 1
je 0x42ed9c
lea edx, [esp + 0x50]
push edx
lea ecx, [esp + 0x24]
call fcn.00409180
mov eax, dword [esp + 0x20]
cmp dword [eax - 0xc], ebp
mov byte [esp + 0x368], 0x30
jge 0x42eb1a
push 2
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x20], esp
mov esi, esp
push eax
call fcn.00401b70
add eax, 0x10
mov dword [esi], eax
mov ecx, esp
mov dword [esp + 0x30], esp
push str.Len_is_less_than_3_chars_PNPDeviceID___Win32_CDROMDrive._PNPDeviceID
mov byte [esp + 0x378], 0x31
call fcn.00402a30
lea ecx, [esp + 0x44]
mov byte [esp + 0x374], 0x30
call fcn.0043bcd0
lea ecx, [esp + 0x38]
call fcn.0043a600
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
mov byte [esp + 0x368], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42ed9c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x42ed9c
lea ecx, [esp + 0x20]
call fcn.00426b70
push ebp
lea ecx, [esp + 0x20]
push ecx
lea ecx, [esp + 0x28]
call fcn.00425040
mov ebx, dword [esp + 0x8c]
mov eax, dword [eax]
mov esi, 1
push 0x59ab80
or ebx, esi
push eax
mov byte [esp + 0x370], 0x32
mov dword [esp + 0x94], ebx
call fcn.0053fceb
add esp, 8
test eax, eax
setne al
test al, al
je 0x42eba0
push 7
lea edx, [esp + 0x18]
push edx
lea ecx, [esp + 0x28]
call fcn.00425040
mov eax, dword [eax]
push str.USBSTOR
or ebx, 2
push eax
mov dword [esp + 0x94], ebx
call fcn.0053fceb
add esp, 8
test eax, eax
setne al
test al, al
mov byte [esp + 0x33], 1
jne 0x42eba5
mov byte [esp + 0x33], 0
test bl, 2
je 0x42ebd4
mov eax, dword [esp + 0x14]
and ebx, 0xfffffffd
add eax, 0xfffffff0
mov dword [esp + 0x8c], ebx
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42ebd4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test bl, 1
mov dword [esp + 0x368], 0x30
je 0x42ec0e
mov eax, dword [esp + 0x1c]
and ebx, 0xfffffffe
add eax, 0xfffffff0
mov dword [esp + 0x8c], ebx
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42ec0e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
mov byte [esp + 0x368], 0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
cmp byte [esp + 0x33], 0
jne 0x42eb03
test edx, edx
jg 0x42ec41
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
add dword [esp + 0x2c], esi
lea ecx, [esp + 0x50]
push ecx
push str.Name
lea ecx, [esp + 0x70]
add edi, 0x244
call fcn.0047bce0
test eax, eax
jne 0x42eca8
push 2
push ecx
lea edx, [esp + 0x58]
mov ecx, esp
mov dword [esp + 0x20], esp
push edx
call fcn.00409180
push ecx
mov ecx, esp
mov dword [esp + 0x30], esp
push str.Can_not_read_Name___Win32_DiskDrive._PNPDeviceID
mov byte [esp + 0x378], 0x33
call fcn.00402a30
lea ecx, [esp + 0x44]
mov byte [esp + 0x374], 0
call fcn.0043bcd0
lea ecx, [esp + 0x38]
call fcn.0043a600
lea eax, [esp + 0x50]
push eax
lea ecx, [esp + 0x2c]
call fcn.00409180
mov ecx, dword [eax]
lea edx, [edi - 0x200]
mov edi, edi
mov al, byte [ecx]
mov byte [edx], al
add ecx, esi
add edx, esi
test al, al
jne 0x42ecc0
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42ecec
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x50]
push ecx
push str.Drive
lea ecx, [esp + 0x70]
call fcn.0047bce0
test eax, eax
jne 0x42ed49
push 2
push ecx
lea edx, [esp + 0x58]
mov ecx, esp
mov dword [esp + 0x20], esp
push edx
call fcn.00409180
push ecx
mov ecx, esp
mov dword [esp + 0x30], esp
push str.Can_not_read_Drive___Win32_DiskDrive._Model
mov byte [esp + 0x378], 0x34
call fcn.00402a30
lea ecx, [esp + 0x44]
mov byte [esp + 0x374], 0
call fcn.0043bcd0
lea ecx, [esp + 0x38]
call fcn.0043a600
cmp word [esp + 0x50], si
je 0x42ed9c
lea eax, [esp + 0x50]
push eax
lea ecx, [esp + 0x94]
call fcn.00409180
mov eax, dword [eax]
push eax
push str.._s
push edi
call fcn.00540420
mov eax, dword [esp + 0x9c]
add eax, 0xfffffff0
add esp, 0xc
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42ed95
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [edi + 0x40], 5
lea ecx, [esp + 0x68]
call fcn.0047c5d0
test eax, eax
jne 0x42ea10
mov edi, dword [esp + 0x34]
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push str.Win32_IDEControllerDevice
xor ebp, ebp
call fcn.00402a30
lea ecx, [esp + 0x6c]
call fcn.0047c170
test eax, eax
je 0x42ef4f
lea ecx, [esp + 0x68]
call fcn.0047c5d0
test eax, eax
je 0x42ef4f
lea esi, [edi + 0x7284]
mov bl, 0x36
mov edi, edi
lea ecx, [esp + 0x50]
push ecx
push str.Antecedent
lea ecx, [esp + 0x70]
call fcn.0047bce0
test eax, eax
jne 0x42ee57
push 2
push ecx
mov edx, esp
mov dword [esp + 0x20], esp
push eax
push edx
call fcn.0043a920
mov byte [esp + 0x378], 0x35
add esp, 4
mov ecx, esp
mov dword [esp + 0x30], esp
push str.Can_not_read_Win32_IDEControllerDevice
call fcn.00402a30
lea ecx, [esp + 0xa0]
mov byte [esp + 0x374], 0
call fcn.0043bcd0
lea ecx, [esp + 0x94]
call fcn.0043a600
jmp 0x42ef3e
lea eax, [esp + 0x38]
push eax
push str.Dependent
lea ecx, [esp + 0x70]
call fcn.0047bce0
test eax, eax
jne 0x42ee88
push 2
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push 1
push ecx
call fcn.0043a920
mov byte [esp + 0x378], bl
jmp 0x42ee1f
cmp ebp, 0x14
jge 0x42ef35
push ecx
lea edx, [esp + 0x54]
mov ecx, esp
mov dword [esp + 0x1c], esp
push edx
call fcn.00409180
lea eax, [esp + 0x18]
push eax
call fcn.0042d270
mov ecx, dword [eax]
add esp, 8
lea edx, [esi + 0x105]
mov al, byte [ecx]
mov byte [edx], al
add ecx, 1
add edx, 1
test al, al
jne 0x42eeb7
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42eee5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push ecx
lea edx, [esp + 0x3c]
mov ecx, esp
mov dword [esp + 0x1c], esp
push edx
call fcn.00409180
lea eax, [esp + 0x20]
push eax
call fcn.0042d270
mov ecx, dword [eax]
add esp, 8
mov edx, esi
mov al, byte [ecx]
mov byte [edx], al
add ecx, 1
add edx, 1
test al, al
jne 0x42ef07
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42ef35
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
add ebp, 1
add esi, 0x20a
lea ecx, [esp + 0x68]
call fcn.0047c5d0
test eax, eax
jne 0x42edf0
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push str.Win32_SCSIControllerDevice
call fcn.00402a30
lea ecx, [esp + 0x6c]
call fcn.0047c170
test eax, eax
je 0x42f0f8
lea ecx, [esp + 0x68]
call fcn.0047c5d0
test eax, eax
je 0x42f0f8
mov ecx, ebp
imul ecx, ecx, 0x20a
lea esi, [ecx + edi + 0x7284]
mov bl, 0x38
lea edx, [esp + 0x38]
push edx
push str.Antecedent
lea ecx, [esp + 0x70]
call fcn.0047bce0
test eax, eax
jne 0x42effb
push 2
push ecx
mov eax, esp
mov dword [esp + 0x20], esp
push 0
push eax
call fcn.0043a920
mov byte [esp + 0x378], 0x37
add esp, 4
mov ecx, esp
mov dword [esp + 0x30], esp
push str.Can_not_read_Win32_SCSIControllerDevice
call fcn.00402a30
lea ecx, [esp + 0xa0]
mov byte [esp + 0x374], 0
call fcn.0043bcd0
lea ecx, [esp + 0x94]
call fcn.0043a600
jmp 0x42f0e7
lea ecx, [esp + 0x50]
push ecx
push str.Dependent
lea ecx, [esp + 0x70]
call fcn.0047bce0
test eax, eax
jne 0x42f02c
push 2
push ecx
mov edx, esp
mov dword [esp + 0x20], esp
push 1
push edx
call fcn.0043a920
mov byte [esp + 0x378], bl
jmp 0x42efc3
cmp ebp, 0x14
jge 0x42f0de
push ecx
lea eax, [esp + 0x3c]
mov ecx, esp
mov dword [esp + 0x1c], esp
push eax
call fcn.00409180
lea ecx, [esp + 0x18]
push ecx
call fcn.0042d270
mov ecx, dword [eax]
add esp, 8
lea edx, [esi + 0x105]
jmp 0x42f060
mov al, byte [ecx]
mov byte [edx], al
add ecx, 1
add edx, 1
test al, al
jne 0x42f060
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x42f08e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push ecx
lea edx, [esp + 0x54]
mov ecx, esp
mov dword [esp + 0x1c], esp
push edx
call fcn.00409180
lea eax, [esp + 0x20]
push eax
call fcn.0042d270
mov ecx, dword [eax]
add esp, 8
mov edx, esi
mov al, byte [ecx]
mov byte [edx], al
add ecx, 1
add edx, 1
test al, al
jne 0x42f0b0
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42f0de
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
add ebp, 1
add esi, 0x20a
lea ecx, [esp + 0x68]
call fcn.0047c5d0
test eax, eax
jne 0x42ef93
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push str.Win32_USBControllerDevice
call fcn.00402a30
lea ecx, [esp + 0x6c]
call fcn.0047c170
test eax, eax
je 0x42f2a0
lea ecx, [esp + 0x68]
call fcn.0047c5d0
test eax, eax
je 0x42f2a0
mov ecx, ebp
imul ecx, ecx, 0x20a
lea esi, [ecx + edi + 0x7284]
mov bl, 0x3a
lea esp, [esp]
lea edx, [esp + 0x38]
push edx
push str.Antecedent
lea ecx, [esp + 0x70]
call fcn.0047bce0
test eax, eax
jne 0x42f1a8
push 2
push ecx
mov eax, esp
mov dword [esp + 0x20], esp
push 0
push eax
call fcn.0043a920
mov byte [esp + 0x378], 0x39
add esp, 4
mov ecx, esp
mov dword [esp + 0x30], esp
push str.Can_not_read_Win32_SCSIControllerDevice
call fcn.00402a30
lea ecx, [esp + 0xa0]
mov byte [esp + 0x374], 0
call fcn.0043bcd0
lea ecx, [esp + 0x94]
call fcn.0043a600
jmp 0x42f28f
lea ecx, [esp + 0x50]
push ecx
push str.Dependent
lea ecx, [esp + 0x70]
call fcn.0047bce0
test eax, eax
jne 0x42f1d9
push 2
push ecx
mov edx, esp
mov dword [esp + 0x20], esp
push 1
push edx
call fcn.0043a920
mov byte [esp + 0x378], bl
jmp 0x42f170
cmp ebp, 0x14
jge 0x42f286
push ecx
lea eax, [esp + 0x3c]
mov ecx, esp
mov dword [esp + 0x1c], esp
push eax
call fcn.00409180
lea ecx, [esp + 0x18]
push ecx
call fcn.0042d270
mov ecx, dword [eax]
add esp, 8
lea edx, [esi + 0x105]
mov al, byte [ecx]
mov byte [edx], al
add ecx, 1
add edx, 1
test al, al
jne 0x42f208
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x42f236
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push ecx
lea edx, [esp + 0x54]
mov ecx, esp
mov dword [esp + 0x1c], esp
push edx
call fcn.00409180
lea eax, [esp + 0x20]
push eax
call fcn.0042d270
mov ecx, dword [eax]
add esp, 8
mov edx, esi
mov al, byte [ecx]
mov byte [edx], al
add ecx, 1
add edx, 1
test al, al
jne 0x42f258
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42f286
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
add ebp, 1
add esi, 0x20a
lea ecx, [esp + 0x68]
call fcn.0047c5d0
test eax, eax
jne 0x42f140
lea ecx, [esp + 0x68]
call fcn.0047bbb0
lea ecx, [esp + 0x68]
mov dword [esp + 0x368], 0xffffffff
call fcn.0047bf90
mov al, 1
jmp 0x42f323
push 2
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push 0x596192
call fcn.00402a30
push ecx
mov ecx, esp
mov dword [esp + 0x30], esp
push str.Win32_BaseBoard
mov byte [esp + 0x378], 4
call fcn.00402a30
lea ecx, [esp + 0xa0]
mov byte [esp + 0x374], 0
call fcn.0043bcd0
lea ecx, [esp + 0x94]
call fcn.0043a600
lea ecx, [esp + 0x68]
mov dword [esp + 0x368], 0xffffffff
call fcn.0047bf90
xor al, al
mov ecx, dword [esp + 0x360]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x348]
xor ecx, esp
call fcn.0053fab2
add esp, 0x358
ret