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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x80
push ebx
push ebp
push esi
xor ebp, ebp
push edi
push ebp
push ebp
mov dword [esp + 0x24], ebp
call fcn.00407ae0
add esp, 8
call fcn.00406eb0
push 9
mov edi, 0xf
push str.Wa_SH
lea ecx, [esp + 0x28]
mov esi, eax
mov dword [esp + 0x40], edi
mov dword [esp + 0x3c], ebp
mov byte [esp + 0x2c], 0
call fcn.00402f10
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x5c]
push ecx
mov ecx, esi
call fcn.00405870
mov ebx, 0x10
cmp dword [esp + 0x38], ebx
jb 0x401bb2
mov edx, dword [esp + 0x24]
push edx
call fcn.0040e7b7
add esp, 4
push 8
push 0x427038
lea ecx, [esp + 0x28]
mov dword [esp + 0x40], edi
mov dword [esp + 0x3c], ebp
mov byte [esp + 0x2c], 0
call fcn.00402f10
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x40]
push ecx
mov ecx, esi
call fcn.00405870
cmp dword [esp + 0x38], ebx
jb 0x401bf3
mov edx, dword [esp + 0x24]
push edx
call fcn.0040e7b7
add esp, 4
push 6
push 0x427044
lea ecx, [esp + 0x7c]
mov dword [esp + 0x94], edi
mov dword [esp + 0x90], ebp
mov byte [esp + 0x80], 0
call fcn.00402f10
lea eax, [esp + 0x74]
push eax
mov ecx, esi
mov ebx, 1
call fcn.004057d0
test al, al
jne 0x401c64
push 6
push 0x42704c
lea ecx, [esp + 0x28]
mov dword [esp + 0x40], edi
mov dword [esp + 0x3c], ebp
mov byte [esp + 0x2c], al
call fcn.00402f10
lea ecx, [esp + 0x20]
push ecx
mov ecx, esi
mov ebx, 3
call fcn.004057d0
mov byte [esp + 0x17], 0
test al, al
je 0x401c69
mov byte [esp + 0x17], 1
test bl, 2
je 0x401c92
and ebx, 0xfffffffd
cmp dword [esp + 0x38], 0x10
jb 0x401c85
mov edx, dword [esp + 0x24]
push edx
call fcn.0040e7b7
add esp, 4
mov dword [esp + 0x38], edi
mov dword [esp + 0x34], ebp
mov byte [esp + 0x24], 0
test bl, 1
je 0x401cae
cmp dword [esp + 0x8c], 0x10
jb 0x401cae
mov eax, dword [esp + 0x78]
push eax
call fcn.0040e7b7
add esp, 4
cmp byte [esp + 0x17], 0
je 0x401e07
push 6
push 0x427044
lea ecx, [esp + 0x7c]
mov dword [esp + 0x94], edi
mov dword [esp + 0x90], ebp
mov byte [esp + 0x80], 0
call fcn.00402f10
lea ecx, [esp + 0x74]
push ecx
mov ecx, esi
call fcn.004057d0
cmp dword [esp + 0x8c], 0x10
mov bl, al
jb 0x401d04
mov edx, dword [esp + 0x78]
push edx
call fcn.0040e7b7
add esp, 4
test bl, bl
je 0x401d61
mov eax, dword [esp + 0x6c]
push ebp
push 0x427054
push eax
push ebp
lea ecx, [esp + 0x68]
call fcn.004046f0
test eax, eax
je 0x4020a3
cmp dword [esp + 0x70], 8
mov eax, dword [esp + 0x5c]
jae 0x401d34
lea eax, [esp + 0x5c]
push eax
call fcn.00401690
mov ebx, eax
add esp, 4
cmp ebx, ebp
je 0x401d61
lea ecx, [esp + 0x3c]
call fcn.004021d0
lea ecx, [esp + 0x58]
call fcn.004021d0
mov eax, ebx
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret 0x10
push 6
push 0x42704c
lea ecx, [esp + 0x7c]
mov dword [esp + 0x94], edi
mov dword [esp + 0x90], ebp
mov byte [esp + 0x80], 0
call fcn.00402f10
lea ecx, [esp + 0x74]
push ecx
mov ecx, esi
call fcn.004057d0
cmp dword [esp + 0x8c], 0x10
mov bl, al
jb 0x401dac
mov edx, dword [esp + 0x78]
push edx
call fcn.0040e7b7
add esp, 4
test bl, bl
je 0x401dbd
call fcn.00401720
test eax, eax
jne 0x401fd3
mov esi, 8
cmp dword [esp + 0x54], esi
jb 0x401dd5
mov eax, dword [esp + 0x40]
push eax
call fcn.0040e7b7
add esp, 4
xor ecx, ecx
mov dword [esp + 0x54], 7
mov dword [esp + 0x50], ebp
mov word [esp + 0x40], cx
cmp dword [esp + 0x70], esi
jb 0x401dfb
mov edx, dword [esp + 0x5c]
push edx
call fcn.0040e7b7
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret 0x10
cmp dword [esp + 0x50], ebp
jne 0x401e4c
mov esi, 8
cmp dword [esp + 0x54], esi
jb 0x401e25
mov eax, dword [esp + 0x40]
push eax
call fcn.0040e7b7
add esp, 4
xor ecx, ecx
mov dword [esp + 0x54], 7
mov dword [esp + 0x50], ebp
mov word [esp + 0x40], cx
cmp dword [esp + 0x70], esi
jb 0x4020e1
mov edx, dword [esp + 0x5c]
push edx
jmp 0x4020d9
lea ecx, [esp + 0x20]
mov byte [esp + 0x17], 0
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x18], ebp
call fcn.004024c0
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x5c]
push ecx
call fcn.00401970
add esp, 8
test al, al
je 0x40209a
mov esi, dword [esp + 0x30]
mov edi, dword [esp + 0x2c]
mov ecx, esi
sub ecx, edi
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x401f1f
xor ebx, ebx
cmp dword [esp + 0x54], 8
mov esi, dword [esp + 0x40]
jae 0x401eb2
lea esi, [esp + 0x40]
cmp ebp, eax
jb 0x401ebf
call fcn.0040e7a7
mov edi, dword [esp + 0x2c]
cmp dword [ebx + edi + 0x18], 8
jb 0x401ecc
mov edi, dword [ebx + edi + 4]
jmp 0x401ed0
lea edi, [ebx + edi + 4]
lea edx, [esp + 0x1c]
push edx
push 1
push esi
push edi
push 0
call sub.newdev.dll_UpdateDriverForPlugAndPlayDevicesW
test eax, eax
jne 0x401eea
inc dword [esp + 0x18]
jmp 0x401ef6
cmp dword [esp + 0x1c], 0
je 0x401ef6
mov byte [esp + 0x17], 1
mov esi, dword [esp + 0x30]
mov edi, dword [esp + 0x2c]
mov ecx, esi
sub ecx, edi
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
inc ebp
add eax, edx
add ebx, 0x1c
cmp ebp, eax
jb 0x401ea3
xor ebp, ebp
sub esi, edi
mov eax, 0x92492493
imul esi
add edx, esi
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [esp + 0x18], eax
jne 0x401ff4
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [esp + 0x20]
cmp eax, 0xe0000243
jne 0x401fa1
call fcn.00402510
mov esi, 8
cmp dword [esp + 0x54], esi
jb 0x401f6c
mov ecx, dword [esp + 0x40]
push ecx
call fcn.0040e7b7
add esp, 4
xor edx, edx
mov dword [esp + 0x54], 7
mov dword [esp + 0x50], ebp
mov word [esp + 0x40], dx
cmp dword [esp + 0x70], esi
jb 0x401f92
mov eax, dword [esp + 0x5c]
push eax
call fcn.0040e7b7
add esp, 4
mov eax, 0xfffffda7
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret 0x10
cmp eax, 0xe0000247
jne 0x401fce
call fcn.00402510
lea ecx, [esp + 0x3c]
call fcn.004021d0
lea ecx, [esp + 0x58]
call fcn.004021d0
mov eax, 0xfffffda6
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret 0x10
call fcn.00402510
lea ecx, [esp + 0x3c]
call fcn.004021d0
lea ecx, [esp + 0x58]
call fcn.004021d0
mov eax, 2
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret 0x10
lea ecx, [esp + 0x20]
call fcn.00402510
cmp byte [esp + 0x17], 0
mov esi, 8
je 0x402051
cmp dword [esp + 0x54], esi
jb 0x40201c
mov ecx, dword [esp + 0x40]
push ecx
call fcn.0040e7b7
add esp, 4
xor edx, edx
mov dword [esp + 0x54], 7
mov dword [esp + 0x50], ebp
mov word [esp + 0x40], dx
cmp dword [esp + 0x70], esi
jb 0x402042
mov eax, dword [esp + 0x5c]
push eax
call fcn.0040e7b7
add esp, 4
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret 0x10
cmp dword [esp + 0x54], esi
jb 0x402064
mov ecx, dword [esp + 0x40]
push ecx
call fcn.0040e7b7
add esp, 4
xor edx, edx
mov dword [esp + 0x54], 7
mov dword [esp + 0x50], ebp
mov word [esp + 0x40], dx
cmp dword [esp + 0x70], esi
jb 0x401dfb
mov eax, dword [esp + 0x5c]
push eax
call fcn.0040e7b7
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret 0x10
lea ecx, [esp + 0x20]
call fcn.00402510
mov esi, 8
cmp dword [esp + 0x54], esi
jb 0x4020bb
mov ecx, dword [esp + 0x40]
push ecx
call fcn.0040e7b7
add esp, 4
xor edx, edx
mov word [esp + 0x40], dx
mov dword [esp + 0x50], ebp
mov dword [esp + 0x54], 7
cmp dword [esp + 0x70], esi
jb 0x4020e1
mov eax, dword [esp + 0x5c]
push eax
call fcn.0040e7b7
add esp, 4
pop edi
mov eax, 1
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret 0x10