Function at 0x1004520
Capabilities:
Print debug messages

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x7d0
mov eax, dword [0x100c034]
mov dword [ebp - 4], eax
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x24], 0
push 2
push 0
push 0
push 0x1001280
call dword [sym.imp.SETUPAPI.dll_SetupDiGetClassDevsA]
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], 0xffffffff
jne 0x100459d
push 0
push 0x42f
push 0x10019d4
lea eax, [ebp - 0xb8]
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
push 0x1001388
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
lea ecx, [ebp - 0xb8]
push ecx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
xor edx, edx
jne 0x100455b
mov eax, 1
jmp 0x1004b57
mov dword [ebp - 0x20], 0x1c
mov dword [ebp - 0x28], 0
jmp 0x10045b6
mov eax, dword [ebp - 0x28]
add eax, 1
mov dword [ebp - 0x28], eax
lea ecx, [ebp - 0x20]
push ecx
mov edx, dword [ebp - 0x28]
push edx
mov eax, dword [ebp - 0x30]
push eax
call dword [sym.imp.SETUPAPI.dll_SetupDiEnumDeviceInfo]
test eax, eax
je 0x1004b2b
mov dword [ebp - 0xc4], 0
mov dword [ebp - 0xc0], 0
lea ecx, [ebp - 0xc0]
push ecx
mov edx, dword [ebp - 0xc0]
push edx
mov eax, dword [ebp - 0xc4]
push eax
push 0
push 1
lea ecx, [ebp - 0x20]
push ecx
mov edx, dword [ebp - 0x30]
push edx
call dword [sym.imp.SETUPAPI.dll_SetupDiGetDeviceRegistryPropertyA]
test eax, eax
jne 0x100465b
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xd
jne 0x100461c
jmp 0x100465b
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
jne 0x1004654
cmp dword [ebp - 0xc4], 0
je 0x100463d
mov eax, dword [ebp - 0xc4]
push eax
call dword [sym.imp.KERNEL32.dll_LocalFree]
mov ecx, dword [ebp - 0xc0]
push ecx
push 0x40
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
mov dword [ebp - 0xc4], eax
jmp 0x1004659
jmp 0x1004b3b
jmp 0x10045e4
cmp dword [ebp - 0xc4], 0
jne 0x1004669
jmp 0x10045ad
mov edx, dword [ebp - 0xc4]
mov dword [ebp - 0xbc], edx
jmp 0x1004694
mov eax, dword [ebp - 0xbc]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov ecx, dword [ebp - 0xbc]
lea edx, [ecx + eax + 1]
mov dword [ebp - 0xbc], edx
mov eax, dword [ebp - 0xbc]
movsx ecx, byte [eax]
test ecx, ecx
je 0x1004b06
mov edx, dword [ebp - 0xc4]
add edx, dword [ebp - 0xc0]
cmp dword [ebp - 0xbc], edx
jae 0x1004b06
push 0
mov eax, dword [ebp - 0xbc]
push eax
push 0x10019c8
lea ecx, [ebp - 0x148]
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
push 0x1001388
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
lea edx, [ebp - 0x148]
push edx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
xor eax, eax
jne 0x10046bd
push 0x10019b0
mov ecx, dword [ebp - 0xbc]
push ecx
call fcn.01003320
test eax, eax
je 0x1004b01
mov dword [ebp - 0x14c], 0
mov dword [ebp - 0x150], 0
push 0x200
call fcn.01005e3b
add esp, 4
mov dword [ebp - 0x14c], eax
cmp dword [ebp - 0x14c], 0
jne 0x100477d
push 0
push 0x4d1
push 0x1001994
lea edx, [ebp - 0x1d0]
push edx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
push 0x1001388
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
lea eax, [ebp - 0x1d0]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
xor ecx, ecx
jne 0x1004740
jmp 0x1004b06
lea edx, [ebp - 0x150]
push edx
push 0x200
mov eax, dword [ebp - 0x14c]
push eax
push 0
push 4
lea ecx, [ebp - 0x20]
push ecx
mov edx, dword [ebp - 0x30]
push edx
call dword [sym.imp.SETUPAPI.dll_SetupDiGetDeviceRegistryPropertyA]
test eax, eax
jne 0x1004820
push 0x4dd
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x1001950
lea eax, [ebp - 0x250]
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
push 0x1001388
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
lea ecx, [ebp - 0x250]
push ecx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
xor edx, edx
jne 0x10047a6
push 0x4de
mov eax, dword [ebp - 0x150]
push eax
push 0x1001930
lea ecx, [ebp - 0x2d0]
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
push 0x1001388
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
lea edx, [ebp - 0x2d0]
push edx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
xor eax, eax
jne 0x10047e3
push 0x4e0
mov ecx, dword [ebp - 0x14c]
push ecx
push 0x100191c
lea edx, [ebp - 0x350]
push edx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
push 0x1001388
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
lea eax, [ebp - 0x350]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
xor ecx, ecx
jne 0x1004820
push 0x1001914
mov edx, dword [ebp - 0x14c]
push edx
call fcn.01003320
test eax, eax
je 0x1004aff
push 0
push 0x4e3
push 0x10018f0
lea eax, [ebp - 0x3d0]
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
push 0x1001388
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
lea ecx, [ebp - 0x3d0]
push ecx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
xor edx, edx
jne 0x1004876
push 0
push 0x4e4
push 0x10018d4
lea eax, [ebp - 0x450]
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
push 0x1001388
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
lea ecx, [ebp - 0x450]
push ecx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
xor edx, edx
jne 0x10048ae
cmp dword [ebp - 0x34], 0xa
jae 0x1004942
mov eax, dword [ebp - 0x34]
add eax, 1
mov dword [ebp - 0x34], eax
push 0x10018c8
push 0
call dword [sym.imp.USER32.dll_FindWindowA]
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 0
je 0x1004935
push 0
push 0xf060
push 0x112
mov ecx, dword [ebp - 0x24]
push ecx
call dword [sym.imp.USER32.dll_SendMessageA]
mov dword [ebp - 0x24], 0
push 0x7d0
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x1004942
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x10048e6
lea edx, [ebp - 0x20]
push edx
mov eax, dword [ebp - 0x30]
push eax
push 5
call dword [sym.imp.SETUPAPI.dll_SetupDiCallClassInstaller]
test eax, eax
jne 0x100498d
push 0
push 0
push 0x10018a4
lea ecx, [ebp - 0x4d0]
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
push 0x1001388
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
lea edx, [ebp - 0x4d0]
push edx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
xor eax, eax
jne 0x1004956
jmp 0x10049c2
push 0
push 0
push 0x100187c
lea ecx, [ebp - 0x550]
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
push 0x1001388
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
lea edx, [ebp - 0x550]
push edx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
xor eax, eax
jne 0x100498d
mov ecx, dword [ebp - 0xc]
push ecx
call fcn.01003fb0
test eax, eax
jne 0x1004a07
push 0
push 0x506
push 0x100185c
lea edx, [ebp - 0x5d0]
push edx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
push 0x1001388
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
lea eax, [ebp - 0x5d0]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
xor ecx, ecx
jne 0x10049cf
push 0
push 0x508
push 0x1001838
lea edx, [ebp - 0x650]
push edx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
push 0x1001388
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
lea eax, [ebp - 0x650]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
xor ecx, ecx
jne 0x1004a07
call fcn.01004200
push 0
push 0x50a
push 0x1001818
lea edx, [ebp - 0x6d0]
push edx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
push 0x1001388
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
lea eax, [ebp - 0x6d0]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
xor ecx, ecx
jne 0x1004a44
lea edx, [ebp - 0x20]
push edx
mov eax, dword [ebp - 0x30]
push eax
call fcn.01003f30
test eax, eax
jne 0x1004ac7
push 0
push 0x512
push 0x1001800
lea ecx, [ebp - 0x750]
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
push 0x1001388
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
lea edx, [ebp - 0x750]
push edx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
xor eax, eax
jne 0x1004a8d
jmp 0x1004aff
push 0
push 0x51d
push 0x10017e0
lea ecx, [ebp - 0x7d0]
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
push 0x1001388
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
lea edx, [ebp - 0x7d0]
push edx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
xor eax, eax
jne 0x1004ac7
jmp 0x1004b06
jmp 0x1004677
cmp dword [ebp - 0xc4], 0
je 0x1004b26
mov ecx, dword [ebp - 0xc4]
push ecx
call dword [sym.imp.KERNEL32.dll_LocalFree]
mov dword [ebp - 0xc4], 0
jmp 0x10045ad
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
je 0x1004b3b
call dword [sym.imp.KERNEL32.dll_GetLastError]
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x2c], eax
mov edx, dword [ebp - 0x30]
push edx
call dword [sym.imp.SETUPAPI.dll_SetupDiDestroyDeviceInfoList]
xor eax, eax
cmp dword [ebp - 0x2c], 0
setne al
mov ecx, dword [ebp - 4]
call fcn.01005938
mov esp, ebp
pop ebp
ret