Function at 0x404d60
Capabilities:
Create process on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x431951
mov eax, dword fs:[0]
push eax
sub esp, 0x104
mov eax, dword [0x4442e4]
xor eax, ebp
mov dword [ebp - 0x10], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov byte [ebp - 0xc1], 0
push 6
push 0
push 0x43ee98
push 0
call dword [sym.imp.SETUPAPI.dll_SetupDiGetClassDevsW]
mov dword [ebp - 0xcc], eax
cmp dword [ebp - 0xcc], 0xffffffff
jne 0x404db7
jmp 0x405213
mov dword [ebp - 0x2c], 0x1c
mov dword [ebp - 0xd8], 0
lea eax, [ebp - 0x2c]
push eax
mov ecx, dword [ebp - 0xd8]
push ecx
mov edx, dword [ebp - 0xcc]
push edx
call dword [sym.imp.SETUPAPI.dll_SetupDiEnumDeviceInfo]
test eax, eax
je 0x4050b1
mov eax, dword [ebp - 0xd8]
add eax, 1
mov dword [ebp - 0xd8], eax
mov dword [ebp - 0xdc], 0
mov dword [ebp - 0xc0], 0
lea ecx, [ebp - 0xc0]
push ecx
mov edx, dword [ebp - 0xc0]
push edx
push 0
lea eax, [ebp - 0x2c]
push eax
mov ecx, dword [ebp - 0xcc]
push ecx
call dword [sym.imp.SETUPAPI.dll_SetupDiGetDeviceInstanceIdA]
cmp dword [ebp - 0xc0], 0
jne 0x404e37
jmp 0x404dc8
mov edx, dword [ebp - 0xc0]
push edx
call fcn.0041bbc1
add esp, 4
mov dword [ebp - 0xc8], eax
lea eax, [ebp - 0xc0]
push eax
mov ecx, dword [ebp - 0xc0]
push ecx
mov edx, dword [ebp - 0xc8]
push edx
lea eax, [ebp - 0x2c]
push eax
mov ecx, dword [ebp - 0xcc]
push ecx
call dword [sym.imp.SETUPAPI.dll_SetupDiGetDeviceInstanceIdA]
mov dword [ebp - 0xd0], 0
jmp 0x404e8d
mov edx, dword [ebp - 0xd0]
add edx, 1
mov dword [ebp - 0xd0], edx
mov eax, dword [ebp - 0xc8]
add eax, dword [ebp - 0xd0]
movsx ecx, byte [eax]
test ecx, ecx
je 0x404ec8
mov edx, dword [ebp - 0xc8]
add edx, dword [ebp - 0xd0]
movsx eax, byte [edx]
push eax
call fcn.00418785
add esp, 4
mov ecx, dword [ebp - 0xc8]
add ecx, dword [ebp - 0xd0]
mov byte [ecx], al
jmp 0x404e7e
push 0x43eea0
mov edx, dword [ebp - 0xc8]
push edx
call fcn.004011e0
add esp, 8
test eax, eax
jne 0x404ef4
mov eax, dword [ebp - 0xc8]
push eax
call fcn.0041b46b
add esp, 4
jmp 0x404dc8
mov ecx, dword [ebp - 0xc8]
push ecx
call fcn.0041b46b
add esp, 4
mov dword [ebp - 0xc0], 0
mov dword [ebp - 0xdc], 0
lea edx, [ebp - 0xc0]
push edx
mov eax, dword [ebp - 0xc0]
push eax
push 0
lea ecx, [ebp - 0xdc]
push ecx
push 0x11
lea edx, [ebp - 0x2c]
push edx
mov eax, dword [ebp - 0xcc]
push eax
call dword [sym.imp.SETUPAPI.dll_SetupDiGetDeviceRegistryPropertyA]
cmp dword [ebp - 0xc0], 0
jbe 0x4050ac
mov ecx, dword [ebp - 0xc0]
push ecx
call fcn.0041bbc1
add esp, 4
mov dword [ebp - 0xe0], eax
lea edx, [ebp - 0xc0]
push edx
mov eax, dword [ebp - 0xc0]
push eax
mov ecx, dword [ebp - 0xe0]
push ecx
lea edx, [ebp - 0xdc]
push edx
push 0x11
lea eax, [ebp - 0x2c]
push eax
mov ecx, dword [ebp - 0xcc]
push ecx
call dword [sym.imp.SETUPAPI.dll_SetupDiGetDeviceRegistryPropertyA]
mov edx, dword [ebp - 0xc0]
push edx
mov eax, dword [ebp - 0xe0]
push eax
lea ecx, [ebp - 0x10c]
push ecx
call fcn.004038a0
add esp, 0xc
mov dword [ebp - 4], 0
mov edx, dword [ebp - 0xe0]
push edx
call fcn.0041b46b
add esp, 4
push 0x40a390
mov eax, dword [ebp - 0xc0]
push eax
push str.check:
push 0x445808
call fcn.0040a070
add esp, 8
mov ecx, eax
call fcn.00405a40
mov ecx, eax
call fcn.00405bd0
lea ecx, [ebp - 0xd4]
push ecx
lea ecx, [ebp - 0x10c]
call fcn.00405c30
jmp 0x405010
lea ecx, [ebp - 0xd4]
call fcn.004059c0
lea edx, [ebp - 0x110]
push edx
lea ecx, [ebp - 0x10c]
call fcn.00405bf0
push eax
lea ecx, [ebp - 0xd4]
call fcn.00405a00
movzx eax, al
test eax, eax
je 0x40509a
push 0x40a390
lea ecx, [ebp - 0xd4]
call fcn.004059e0
push eax
push str._filters:
push 0x445808
call fcn.0040a070
add esp, 8
push eax
call fcn.0040a3c0
add esp, 8
mov ecx, eax
call fcn.00405bd0
push 0xf
push str.AppleKmdfFilter
lea ecx, [ebp - 0xd4]
call fcn.004017d0
mov ecx, eax
call fcn.00406380
push eax
call fcn.0041b360
add esp, 0xc
test eax, eax
jne 0x405095
mov byte [ebp - 0xc1], 1
jmp 0x405005
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x10c]
call fcn.00405e80
jmp 0x404dc8
mov ecx, dword [ebp - 0xcc]
push ecx
call dword [sym.imp.SETUPAPI.dll_SetupDiDestroyDeviceInfoList]
movzx edx, byte [ebp - 0xc1]
test edx, edx
jne 0x405213
lea eax, [ebp - 0x74]
push eax
call fcn.0040d4c0
add esp, 4
mov dword [ebp - 0xe4], eax
mov ecx, dword [ebp - 0xe4]
mov dword [ebp - 0xe8], ecx
mov dword [ebp - 4], 1
push 0x43eed4
mov edx, dword [ebp - 0xe8]
push edx
lea eax, [ebp - 0x5c]
push eax
call fcn.0040a480
add esp, 0xc
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x74]
call fcn.004061d0
lea ecx, [ebp - 0xbc]
push ecx
call fcn.0040d4c0
add esp, 4
mov dword [ebp - 0xec], eax
mov edx, dword [ebp - 0xec]
mov dword [ebp - 0xf4], edx
mov byte [ebp - 4], 4
push 0x43ef34
lea ecx, [ebp - 0xa4]
call fcn.00406240
mov dword [ebp - 0xf0], eax
mov eax, dword [ebp - 0xf0]
mov dword [ebp - 0xf8], eax
mov byte [ebp - 4], 5
mov ecx, dword [ebp - 0xf4]
push ecx
mov edx, dword [ebp - 0xf8]
push edx
lea eax, [ebp - 0x8c]
push eax
call fcn.0040a4c0
add esp, 0xc
mov dword [ebp - 0xfc], eax
mov ecx, dword [ebp - 0xfc]
mov dword [ebp - 0x100], ecx
mov byte [ebp - 4], 6
push str.iosdriverAppleUsb.inf_
mov edx, dword [ebp - 0x100]
push edx
lea eax, [ebp - 0x44]
push eax
call fcn.0040a480
add esp, 0xc
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x8c]
call fcn.004061d0
mov byte [ebp - 4], 4
lea ecx, [ebp - 0xa4]
call fcn.004061d0
mov byte [ebp - 4], 3
lea ecx, [ebp - 0xbc]
call fcn.004061d0
push 0
push 0
lea ecx, [ebp - 0x44]
call fcn.00406070
push eax
lea ecx, [ebp - 0x5c]
call fcn.00406070
push eax
push 0x43ef40
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
lea ecx, [ebp - 0x44]
call fcn.004061d0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x5c]
call fcn.004061d0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0041417d
mov esp, ebp
pop ebp
ret