Function at 0x405db0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x40c9d0
push eax
mov eax, dword [esp + 0x18]
mov dword fs:[0], esp
sub esp, 0x44
push ebx
push ebp
push esi
xor esi, esi
cmp eax, esi
push edi
mov ebp, ecx
jne 0x405ddf
xor eax, eax
jmp 0x406357
mov al, byte [esp + 0x6c]
mov dword [esp + 0x48], esi
mov byte [esp + 0x44], al
mov dword [esp + 0x4c], esi
mov dword [esp + 0x50], esi
mov cl, byte [esp + 0x6c]
mov dword [esp + 0x5c], esi
mov byte [esp + 0x34], cl
mov dword [esp + 0x38], esi
mov dword [esp + 0x3c], esi
mov dword [esp + 0x40], esi
lea edx, [esp + 0x14]
mov ebx, 1
push edx
push esi
push esi
push 2
push esi
mov byte [esp + 0x70], bl
mov dword [esp + 0x28], esi
call dword [sym.imp.SETUPAPI.dll_SetupGetInfFileListA]
mov edi, dword [esp + 0x64]
test eax, eax
je 0x406249
mov eax, dword [esp + 0x14]
push eax
call dword [sym.imp.MSVCRT.dll_malloc]
mov ecx, dword [esp + 0x18]
add esp, 4
mov esi, eax
push 0
push ecx
push esi
push 2
push 0
mov dword [esp + 0x24], esi
call dword [sym.imp.SETUPAPI.dll_SetupGetInfFileListA]
test eax, eax
je 0x40623d
mov al, byte [esi]
mov dword [esp + 0x64], 0
test al, al
je 0x40623d
lea edx, [esp + 0x34]
lea eax, [esp + 0x44]
push edx
push eax
push ecx
mov ecx, esp
mov dword [esp + 0x28], esp
push str.SLAB
call sub.MFC42.DLL_CString::CString
push ecx
mov byte [esp + 0x6c], 2
mov ecx, esp
mov dword [esp + 0x30], esp
push str.SLAB.CdcBus.Desc
call sub.MFC42.DLL_CString::CString
push ecx
mov byte [esp + 0x70], 3
mov ecx, esp
mov dword [esp + 0x38], esp
push str.Strings
call sub.MFC42.DLL_CString::CString
push ecx
mov byte [esp + 0x74], 4
mov ecx, esp
mov dword [esp + 0x40], esp
push str.slabbus.sys
call sub.MFC42.DLL_CString::CString
push ecx
mov byte [esp + 0x78], 5
mov ecx, esp
mov dword [esp + 0x48], esp
push str.SourceDisksFiles
call sub.MFC42.DLL_CString::CString
push ecx
mov byte [esp + 0x7c], 6
mov ecx, esp
mov dword [esp + 0x50], esp
push 0x410c88
call sub.MFC42.DLL_CString::CString
mov ecx, dword [esp + 0x84]
mov byte [esp + 0x7c], bl
add esi, ecx
mov ecx, ebp
push esi
push edi
call fcn.00406730
lea edx, [esp + 0x34]
lea eax, [esp + 0x44]
push edx
push eax
push ecx
mov ecx, esp
mov dword [esp + 0x3c], esp
push str.SLAB
call sub.MFC42.DLL_CString::CString
push ecx
mov byte [esp + 0x6c], 7
mov ecx, esp
mov dword [esp + 0x3c], esp
push str.SLAB.Comm.Desc
call sub.MFC42.DLL_CString::CString
push ecx
mov byte [esp + 0x70], 8
mov ecx, esp
mov dword [esp + 0x3c], esp
push str.Strings
call sub.MFC42.DLL_CString::CString
push ecx
mov byte [esp + 0x74], 9
mov ecx, esp
mov dword [esp + 0x3c], esp
push str.slabser.sys
call sub.MFC42.DLL_CString::CString
push ecx
mov byte [esp + 0x78], 0xa
mov ecx, esp
mov dword [esp + 0x3c], esp
push str.SourceDisksFiles
call sub.MFC42.DLL_CString::CString
push ecx
mov byte [esp + 0x7c], 0xb
mov ecx, esp
mov dword [esp + 0x3c], esp
push str.Ports
call sub.MFC42.DLL_CString::CString
push esi
push edi
mov ecx, ebp
mov byte [esp + 0x84], bl
call fcn.00406730
lea ecx, [esp + 0x34]
lea edx, [esp + 0x44]
push ecx
push edx
push ecx
mov ecx, esp
mov dword [esp + 0x3c], esp
push str.SLAB
call sub.MFC42.DLL_CString::CString
push ecx
mov byte [esp + 0x6c], 0xc
mov ecx, esp
mov dword [esp + 0x3c], esp
push str.SLAB.CdcBus.Desc
call sub.MFC42.DLL_CString::CString
push ecx
mov byte [esp + 0x70], 0xd
mov ecx, esp
mov dword [esp + 0x3c], esp
push str.Strings
call sub.MFC42.DLL_CString::CString
push ecx
mov byte [esp + 0x74], 0xe
mov ecx, esp
mov dword [esp + 0x3c], esp
push str.slabbus.sys
call sub.MFC42.DLL_CString::CString
push ecx
mov byte [esp + 0x78], 0xf
mov ecx, esp
mov dword [esp + 0x3c], esp
push str.SourceDisksFiles.x86
call sub.MFC42.DLL_CString::CString
push ecx
mov byte [esp + 0x7c], 0x10
mov ecx, esp
mov dword [esp + 0x3c], esp
push 0x410c88
call sub.MFC42.DLL_CString::CString
push esi
push edi
mov ecx, ebp
mov byte [esp + 0x84], bl
call fcn.00406730
lea eax, [esp + 0x34]
lea ecx, [esp + 0x44]
push eax
push ecx
push ecx
mov ecx, esp
mov dword [esp + 0x3c], esp
push str.SLAB
call sub.MFC42.DLL_CString::CString
push ecx
mov byte [esp + 0x6c], 0x11
mov ecx, esp
mov dword [esp + 0x3c], esp
push str.SLAB.Comm.Desc
call sub.MFC42.DLL_CString::CString
push ecx
mov byte [esp + 0x70], 0x12
mov ecx, esp
mov dword [esp + 0x3c], esp
push str.Strings
call sub.MFC42.DLL_CString::CString
push ecx
mov byte [esp + 0x74], 0x13
mov ecx, esp
mov dword [esp + 0x3c], esp
push str.slabser.sys
call sub.MFC42.DLL_CString::CString
push ecx
mov byte [esp + 0x78], 0x14
mov ecx, esp
mov dword [esp + 0x3c], esp
push str.SourceDisksFiles.x86
call sub.MFC42.DLL_CString::CString
push ecx
mov byte [esp + 0x7c], 0x15
mov ecx, esp
mov dword [esp + 0x3c], esp
push str.Ports
call sub.MFC42.DLL_CString::CString
push esi
push edi
mov ecx, ebp
mov byte [esp + 0x84], bl
call fcn.00406730
lea edx, [esp + 0x34]
lea eax, [esp + 0x44]
push edx
push eax
push ecx
mov ecx, esp
mov dword [esp + 0x3c], esp
push str.SLAB
call sub.MFC42.DLL_CString::CString
push ecx
mov byte [esp + 0x6c], 0x16
mov ecx, esp
mov dword [esp + 0x3c], esp
push str.SLAB.CdcBus.Desc
call sub.MFC42.DLL_CString::CString
push ecx
mov byte [esp + 0x70], 0x17
mov ecx, esp
mov dword [esp + 0x3c], esp
push str.Strings
call sub.MFC42.DLL_CString::CString
push ecx
mov byte [esp + 0x74], 0x18
mov ecx, esp
mov dword [esp + 0x3c], esp
push str.slabbus.sys
call sub.MFC42.DLL_CString::CString
push ecx
mov byte [esp + 0x78], 0x19
mov ecx, esp
mov dword [esp + 0x3c], esp
push str.SourceDisksFiles.amd64
call sub.MFC42.DLL_CString::CString
push ecx
mov byte [esp + 0x7c], 0x1a
mov ecx, esp
mov dword [esp + 0x3c], esp
push 0x410c88
call sub.MFC42.DLL_CString::CString
mov byte [esp + 0x7c], bl
push esi
push edi
mov ecx, ebp
call fcn.00406730
lea ecx, [esp + 0x34]
lea edx, [esp + 0x44]
push ecx
push edx
push ecx
mov ecx, esp
mov dword [esp + 0x3c], esp
push str.SLAB
call sub.MFC42.DLL_CString::CString
push ecx
mov byte [esp + 0x6c], 0x1b
mov ecx, esp
mov dword [esp + 0x3c], esp
push str.SLAB.Comm.Desc
call sub.MFC42.DLL_CString::CString
push ecx
mov byte [esp + 0x70], 0x1c
mov ecx, esp
mov dword [esp + 0x3c], esp
push str.Strings
call sub.MFC42.DLL_CString::CString
push ecx
mov byte [esp + 0x74], 0x1d
mov ecx, esp
mov dword [esp + 0x3c], esp
push str.slabser.sys
call sub.MFC42.DLL_CString::CString
push ecx
mov byte [esp + 0x78], 0x1e
mov ecx, esp
mov dword [esp + 0x3c], esp
push str.SourceDisksFiles.amd64
call sub.MFC42.DLL_CString::CString
push ecx
mov byte [esp + 0x7c], 0x1f
mov ecx, esp
mov dword [esp + 0x3c], esp
push str.Ports
call sub.MFC42.DLL_CString::CString
push esi
push edi
mov ecx, ebp
mov byte [esp + 0x84], bl
call fcn.00406730
mov eax, dword [esp + 0x64]
mov cl, byte [esi]
inc eax
test cl, cl
mov dword [esp + 0x64], eax
je 0x40622d
mov ecx, dword [esp + 0x10]
inc eax
mov dl, byte [eax + ecx - 1]
test dl, dl
jne 0x40621c
mov dword [esp + 0x64], eax
mov ecx, dword [esp + 0x10]
mov esi, ecx
cmp byte [eax + ecx], 0
jne 0x405e74
push esi
call dword [sym.imp.MSVCRT.dll_free]
add esp, 4
xor esi, esi
mov eax, dword [esp + 0x48]
cmp eax, esi
je 0x40625f
mov edx, dword [esp + 0x4c]
sub edx, eax
test edx, 0xfffffffc
jne 0x40627b
mov eax, dword [esp + 0x38]
cmp eax, esi
je 0x406275
mov ecx, dword [esp + 0x3c]
sub ecx, eax
test ecx, 0xfffffffc
jne 0x40627b
mov dword [esp + 0x64], ebx
jmp 0x40629a
mov ecx, dword [esp + 0x70]
lea edx, [esp + 0x34]
lea eax, [esp + 0x44]
push edx
push eax
push ecx
push edi
mov ecx, ebp
call fcn.00406900
cmp eax, esi
mov dword [esp + 0x64], eax
je 0x4062ea
mov ebp, dword [sym.imp.ADVAPI32.dll_RegOpenKeyA]
lea edx, [esp + 0x18]
push edx
push str.SYSTEMCurrentControlSetServices_slabser
push 0x80000002
call ebp
mov edi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test eax, eax
jne 0x4062c8
mov eax, dword [esp + 0x18]
push eax
call edi
mov ecx, dword [esp + 0x6c]
mov dword [ecx], ebx
lea edx, [esp + 0x18]
push edx
push str.SYSTEMCurrentControlSetServices_slabbus
push 0x80000002
call ebp
test eax, eax
jne 0x4062ea
mov eax, dword [esp + 0x18]
push eax
call edi
mov ecx, dword [esp + 0x6c]
mov dword [ecx], ebx
mov ebx, dword [esp + 0x3c]
mov edi, dword [esp + 0x38]
cmp edi, ebx
mov byte [esp + 0x5c], 0
je 0x40630d
mov ecx, edi
call fcn.0040b9d8
add edi, 4
cmp edi, ebx
jne 0x4062fb
mov edi, dword [esp + 0x38]
push edi
call sub.MFC42.DLL_operatordelete
mov eax, dword [esp + 0x50]
mov dword [esp + 0x3c], esi
mov dword [esp + 0x40], esi
mov dword [esp + 0x44], esi
mov esi, dword [esp + 0x4c]
add esp, 4
cmp esi, eax
mov dword [esp + 0x5c], 0xffffffff
mov edi, eax
je 0x40634a
mov ecx, esi
call fcn.0040b9d8
add esi, 4
cmp esi, edi
jne 0x406338
mov esi, dword [esp + 0x48]
push esi
call sub.MFC42.DLL_operatordelete
mov eax, dword [esp + 0x68]
add esp, 4
mov ecx, dword [esp + 0x54]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x50
ret 0x10