Function at 0x401460
Capabilities:
Access peb ldr_data
Get kernel32 base address

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x52e8e0
mov eax, dword fs:[0]
push eax
sub esp, 0x48
mov eax, dword [0x579680]
xor eax, esp
mov dword [esp + 0x40], eax
push ebx
push esi
push edi
mov eax, dword [0x579680]
xor eax, esp
push eax
lea eax, [esp + 0x58]
mov dword fs:[0], eax
mov esi, ecx
call fcn.0040d725
mov eax, dword [esi + 0xb0]
mov ebx, dword [sym.imp.USER32.dll_SendMessageA]
push eax
mov eax, dword [esi + 0x20]
push 1
push 0x80
push eax
call ebx
mov eax, dword [esi + 0xb0]
mov ecx, dword [esi + 0x20]
push eax
push 0
push 0x80
push ecx
call ebx
mov edx, dword [esi + 0xd4]
push 0x640000
push 0
push 0x401
push edx
call ebx
push esi
call fcn.00402a90
push esi
call fcn.00401900
mov eax, 0x6530
mov word [esp + 0x24], ax
xor eax, eax
mov dword [esp + 0x3c], eax
mov ecx, 0xa5dcbf10
mov dword [esp + 0x3c], ecx
mov edx, 0x11d2
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], eax
mov word [esp + 0x26], dx
mov byte [esp + 0x28], 0x90
mov byte [esp + 0x29], 0x1f
mov byte [esp + 0x2a], 0
mov byte [esp + 0x2b], 0xc0
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x38], eax
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x44], ecx
push 0
lea ecx, [esp + 0x34]
mov dword [esp + 0x44], eax
mov eax, dword [esi + 0x20]
push ecx
mov byte [esp + 0x34], 0x4f
mov byte [esp + 0x35], 0xb9
mov byte [esp + 0x36], 0x51
mov byte [esp + 0x37], 0xed
mov edx, dword [esp + 0x34]
push eax
mov dword [esp + 0x3c], 0x20
mov dword [esp + 0x40], 5
mov dword [esp + 0x54], edx
call dword [sym.imp.USER32.dll_RegisterDeviceNotificationA]
push 0xffffffffffffffff
push 0x1e
push 2
push 0x5585bf
lea edi, [esi + 0x108]
push 0
mov ecx, edi
mov dword [esi + 0x78], eax
call fcn.0040fdd3
push 0xffffffffffffffff
push 0x8c
push 2
push str.Manufacturer
push 1
mov ecx, edi
call fcn.0040fdd3
push 0xffffffffffffffff
push 0x1e0
push 2
push str.Description
push 2
mov ecx, edi
call fcn.0040fdd3
push 0xffffffffffffffff
push 0xdc
push 2
push str.Device_Status
push 3
mov ecx, edi
call fcn.0040fdd3
push 0
push 1
push 0xff
push 0x18
lea edi, [esi + 0xa8]
push 0x18
mov ecx, edi
call fcn.0041024a
xor eax, eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], vtable.CBitmap.0
mov dword [esp + 0x60], eax
call fcn.00417af6
mov eax, dword [eax + 0xc]
push 0x8f
push eax
call dword [sym.imp.USER32.dll_LoadBitmapA]
push eax
lea ecx, [esp + 0x18]
call fcn.00418da9
mov edx, dword [esp + 0x18]
mov eax, dword [esi + 0xac]
push 0xffffff
push edx
push eax
call fcn.00417af6
mov eax, dword [eax + 0x78]
mov ecx, dword [eax]
call fcn.00406e30
lea ecx, [esp + 0x14]
call fcn.00418e01
call fcn.00417af6
mov eax, dword [eax + 0xc]
push 0x8e
push eax
call dword [sym.imp.USER32.dll_LoadBitmapA]
push eax
lea ecx, [esp + 0x18]
call fcn.00418da9
mov ecx, dword [esp + 0x18]
mov eax, dword [esi + 0xac]
push 0xffffff
push ecx
push eax
call fcn.00417af6
mov edx, dword [eax + 0x78]
mov ecx, dword [edx]
call fcn.00406e30
lea ecx, [esp + 0x14]
call fcn.00418e01
test edi, edi
je 0x4016b0
mov edi, dword [edi + 4]
mov eax, dword [esi + 0x128]
push edi
push 1
push 0x1003
push eax
call ebx
push eax
call fcn.00410182
mov ecx, dword [esi + 0x128]
push 0x61
push 0
push 0x1036
push ecx
call ebx
mov edi, dword [sym.imp.USER32.dll_FindWindowA]
push str.Found_New_Hardware_Wizard
push 0
call edi
test eax, eax
je 0x4016f5
push 0
push 0
push 0x10
push eax
call ebx
push str.Found_New_Hardware
push 0
call edi
test eax, eax
je 0x40170b
push 0
push 0
push 0x10
push eax
call ebx
mov ecx, esi
call fcn.00404870
push str.http:__
lea ecx, [esp + 0x14]
call fcn.00406ca0
push 3
push 0x557ddc
lea ecx, [esp + 0x18]
mov byte [esp + 0x68], 1
call fcn.004067f0
push 9
push str.installer
lea ecx, [esp + 0x18]
call fcn.004067f0
push 4
push str..com
lea ecx, [esp + 0x18]
call fcn.004067f0
mov eax, dword [esp + 0x10]
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x20], esp
mov edi, esp
push eax
call fcn.00406740
add eax, 0x10
add esp, 4
lea ecx, [esi + 0x15c]
mov dword [edi], eax
call fcn.0040a1e0
mov byte [esp + 0x60], 0
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4017a1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x60], 0xffffffff
lea ecx, [esp + 0x14]
mov dword [esp + 0x14], vtable.CBitmap.0
call fcn.00407290
mov eax, 1
mov ecx, dword [esp + 0x58]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x40]
xor ecx, esp
call fcn.00507bff
mov esp, ebp
pop ebp
ret