Function at 0x576800
Capabilities:
Contain obfuscated stackstrings
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x6b3ed2
mov eax, dword fs:[0]
push eax
push ecx
mov eax, 0x2710
call fcn.0063ac90
mov eax, dword [0x76f950]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov ebx, dword [0x77e334]
mov dword [ebp - 0x2708], ebx
test ebx, ebx
je 0x577340
cmp byte [0x796e70], 0
jne 0x577340
mov byte [0x796e70], 1
mov edi, dword [0x788ddc]
mov eax, dword [0x788de0]
test eax, eax
cmovne edi, eax
test edi, edi
jne 0x576876
xor esi, esi
jmp 0x576891
cmp word [edi], 0
jne 0x576880
xor esi, esi
jmp 0x576891
call fcn.004df4c0
mov esi, eax
push 0xffffffffffffffff
push edi
mov ecx, esi
call fcn.0040bb30
mov dword [ebp - 0x268c], esi
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x268c]
call fcn.004e18e0
mov dword [ebp - 4], 0xffffffff
test esi, esi
je 0x5768c6
mov eax, dword [esi]
test eax, eax
jne 0x5768c3
mov ecx, esi
call fcn.004df580
jmp 0x5768c6
dec eax
mov dword [esi], eax
mov dword [ebp - 4], 1
mov eax, dword [ebx]
push ebx
call dword [eax + 0x10]
mov ebx, eax
mov dword [ebp - 0x26f4], ebx
push 0x705164
lea ecx, [ebp - 0x2688]
call fcn.00401430
mov byte [ebp - 4], 2
mov dword [ebp - 0x2684], 0
mov byte [ebp - 4], 3
push ebx
lea ecx, [ebp - 0x2694]
call fcn.004dafb0
mov esi, eax
mov byte [ebp - 4], 4
push str.Found
lea eax, [ebp - 0x269c]
push eax
lea ecx, [ebp - 0x2688]
call fcn.00406d10
mov byte [ebp - 4], 5
push esi
lea ecx, [ebp - 0x2698]
push ecx
mov ecx, eax
call fcn.00406be0
mov byte [ebp - 4], 6
push str._Devices.
lea ecx, [ebp - 0x268c]
push ecx
mov ecx, eax
call fcn.00406d10
mov byte [ebp - 4], 7
push eax
lea ecx, [ebp - 0x2684]
call fcn.00402510
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x268c]
call fcn.00401470
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x2698]
call fcn.00401470
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x269c]
call fcn.00401470
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x2694]
call fcn.00401470
lea ecx, [ebp - 0x2684]
call fcn.004e18e0
xor ebx, ebx
mov dword [ebp - 0x26e8], ebx
mov edi, dword [sym.imp.KERNEL32.dll_SearchPathW]
jmp 0x5769c0
cmp ebx, dword [ebp - 0x26f4]
jae 0x57731b
push ebx
lea ecx, [ebp - 0x2700]
call fcn.004dafb0
mov esi, eax
mov byte [ebp - 4], 8
push str.Device_Number_:
lea eax, [ebp - 0x26f8]
push eax
lea ecx, [ebp - 0x2688]
call fcn.00406d10
mov byte [ebp - 4], 9
push esi
lea ecx, [ebp - 0x26f0]
push ecx
mov ecx, eax
call fcn.00406be0
mov byte [ebp - 4], 0xa
push eax
lea ecx, [ebp - 0x2684]
call fcn.00402510
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x26f0]
call fcn.00401470
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x26f8]
call fcn.00401470
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x2700]
call fcn.00401470
lea ecx, [ebp - 0x2684]
call fcn.004e18e0
mov byte [ebp - 0x2680], 0
push 0x1ff
push 0
lea eax, [ebp - 0x267f]
push eax
call fcn.0063ac00
add esp, 0xc
push 0x24c
push 0
lea eax, [ebp - 0x2480]
push eax
call fcn.0063ac00
add esp, 0xc
mov ecx, dword [ebp - 0x2708]
mov eax, dword [ecx]
lea edx, [ebp - 0x2680]
push edx
push 0
push ebx
push ecx
call dword [eax + 0x14]
test eax, eax
js 0x5772d5
lea eax, [ebp - 0x2680]
push eax
lea ecx, [ebp - 0x2704]
call fcn.004024d0
mov esi, eax
mov byte [ebp - 4], 0xb
lea eax, [ebp - 0x2480]
push eax
lea ecx, [ebp - 0x26ac]
call fcn.004024d0
mov byte [ebp - 4], 0xc
push eax
lea eax, [ebp - 0x26e4]
push eax
lea ecx, [ebp - 0x2688]
call fcn.00406be0
mov byte [ebp - 4], 0xd
push 0x705130
lea ecx, [ebp - 0x2720]
push ecx
mov ecx, eax
call fcn.00406d10
mov byte [ebp - 4], 0xe
push esi
lea ecx, [ebp - 0x2718]
push ecx
mov ecx, eax
call fcn.00406be0
mov byte [ebp - 4], 0xf
push 0x70512c
lea ecx, [ebp - 0x2710]
push ecx
mov ecx, eax
call fcn.00406d10
mov byte [ebp - 4], 0x10
push eax
lea ecx, [ebp - 0x2684]
call fcn.00402510
mov byte [ebp - 4], 0xf
lea ecx, [ebp - 0x2710]
call fcn.00401470
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0x2718]
call fcn.00401470
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x2720]
call fcn.00401470
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x26e4]
call fcn.00401470
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x26ac]
call fcn.00401470
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x2704]
call fcn.00401470
lea ecx, [ebp - 0x2684]
call fcn.004e18e0
lea eax, [ebp - 0x2280]
push eax
lea ecx, [ebp - 0x2714]
call fcn.004024d0
mov esi, eax
mov byte [ebp - 4], 0x11
push 0x7051ec
lea eax, [ebp - 0x26bc]
push eax
lea ecx, [ebp - 0x2688]
call fcn.00406d10
mov byte [ebp - 4], 0x12
push esi
lea ecx, [ebp - 0x26ec]
push ecx
mov ecx, eax
call fcn.00406be0
mov byte [ebp - 4], 0x13
push 0x7051e8
lea ecx, [ebp - 0x26b4]
push ecx
mov ecx, eax
call fcn.00406d10
mov byte [ebp - 4], 0x14
push eax
lea ecx, [ebp - 0x2684]
call fcn.00402510
mov byte [ebp - 4], 0x13
lea ecx, [ebp - 0x26b4]
call fcn.00401470
mov byte [ebp - 4], 0x12
lea ecx, [ebp - 0x26ec]
call fcn.00401470
mov byte [ebp - 4], 0x11
lea ecx, [ebp - 0x26bc]
call fcn.00401470
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x2714]
call fcn.00401470
lea ecx, [ebp - 0x2684]
call fcn.004e18e0
push str.Driver_version__reported__:
lea eax, [ebp - 0x26c4]
push eax
lea ecx, [ebp - 0x2688]
call fcn.00406d10
mov byte [ebp - 4], 0x15
push eax
lea ecx, [ebp - 0x2684]
call fcn.00402510
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x26c4]
call fcn.00401470
movzx eax, word [ebp - 0x2260]
push eax
mov eax, dword [ebp - 0x2260]
shr eax, 0x10
push eax
movzx eax, word [ebp - 0x225c]
push eax
mov eax, dword [ebp - 0x225c]
shr eax, 0x10
push eax
push str._d._02d._02d._04d
push 0x100
lea eax, [ebp - 0x218]
push eax
call fcn.0063439c
add esp, 0x1c
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebp - 0x2684]
call fcn.00406bb0
lea ecx, [ebp - 0x2684]
call fcn.004e18e0
lea eax, [ebp - 0x2680]
push eax
lea ecx, [ebp - 0x26a0]
call fcn.004024d0
mov byte [ebp - 4], 0x16
lea ecx, [ebp - 0x2230]
push ecx
mov ecx, eax
call fcn.00406a60
mov byte [ebp - 4], 0x18
lea ecx, [ebp - 0x26a0]
call fcn.00401470
mov dword [ebp - 0x2690], 0
lea eax, [ebp - 0x2230]
cmp dword [ebp - 0x221c], 8
cmovae eax, dword [ebp - 0x2230]
lea ecx, [ebp - 0x2690]
push ecx
lea ecx, [ebp - 0xa18]
push ecx
push 0x3ff
push 0
push eax
push 0
call edi
test eax, eax
setne al
test al, al
jne 0x576f99
push 0x3ff
lea eax, [ebp - 0x1a18]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
lea ecx, [ebp - 0x1a18]
add ecx, 0xfffffffe
jmp 0x576d70
mov ax, word [ecx + 2]
lea ecx, [ecx + 2]
test ax, ax
jne 0x576d70
mov eax, dword [str.drivers]
mov dword [ecx], eax
mov eax, dword [0x705190]
mov dword [ecx + 4], eax
mov eax, dword [0x705194]
mov dword [ecx + 8], eax
mov eax, dword [0x705198]
mov dword [ecx + 0xc], eax
mov ax, word [0x70519c]
mov word [ecx + 0x10], ax
lea eax, [ebp - 0x2230]
cmp dword [ebp - 0x221c], 8
cmovae eax, dword [ebp - 0x2230]
lea ecx, [ebp - 0x2690]
push ecx
lea ecx, [ebp - 0xa18]
push ecx
push 0x3ff
push 0
push eax
lea eax, [ebp - 0x1a18]
push eax
call edi
test eax, eax
setne al
test al, al
jne 0x576f99
push 0x3ff
lea eax, [ebp - 0x1218]
push eax
mov esi, dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
call esi
lea eax, [ebp - 0x1218]
add eax, 0xfffffffe
mov cx, word [eax + 2]
lea eax, [eax + 2]
test cx, cx
jne 0x576e02
mov ecx, dword [str._system32]
mov dword [eax], ecx
mov ecx, dword [0x70517c]
mov dword [eax + 4], ecx
mov ecx, dword [0x705180]
mov dword [eax + 8], ecx
mov ecx, dword [0x705184]
mov dword [eax + 0xc], ecx
mov ecx, dword [0x705188]
mov dword [eax + 0x10], ecx
lea eax, [ebp - 0x2230]
cmp dword [ebp - 0x221c], 8
cmovae eax, dword [ebp - 0x2230]
lea ecx, [ebp - 0x2690]
push ecx
lea ecx, [ebp - 0xa18]
push ecx
push 0x3ff
push 0
push eax
lea eax, [ebp - 0x1218]
push eax
call edi
test eax, eax
setne al
test al, al
jne 0x576f99
push 0x3ff
lea eax, [ebp - 0x2218]
push eax
call esi
lea edi, [ebp - 0x2218]
add edi, 0xfffffffe
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x576e91
mov ecx, 9
mov esi, str._system32drivers
rep movsd dword es:[edi], dword [esi]
lea eax, [ebp - 0x2230]
cmp dword [ebp - 0x221c], 8
cmovae eax, dword [ebp - 0x2230]
lea ecx, [ebp - 0x2690]
push ecx
lea ecx, [ebp - 0xa18]
push ecx
push 0x3ff
push 0
push eax
lea eax, [ebp - 0x2218]
push eax
mov edi, dword [sym.imp.KERNEL32.dll_SearchPathW]
call edi
test eax, eax
setne al
test al, al
jne 0x576f99
lea eax, [ebp - 0x2680]
push eax
lea ecx, [ebp - 0x26fc]
call fcn.004024d0
mov esi, eax
mov byte [ebp - 4], 0x1d
push str.Driver
lea eax, [ebp - 0x26d4]
push eax
lea ecx, [ebp - 0x2688]
call fcn.00406d10
mov byte [ebp - 4], 0x1e
push esi
lea ecx, [ebp - 0x270c]
push ecx
mov ecx, eax
call fcn.00406be0
mov byte [ebp - 4], 0x1f
push str._is_not_found_in_search_path.
lea ecx, [ebp - 0x26cc]
push ecx
mov ecx, eax
call fcn.00406d10
mov byte [ebp - 4], 0x20
push eax
lea ecx, [ebp - 0x2684]
call fcn.00402510
mov byte [ebp - 4], 0x1f
lea ecx, [ebp - 0x26cc]
call fcn.00401470
mov byte [ebp - 4], 0x1e
lea ecx, [ebp - 0x270c]
call fcn.00401470
mov byte [ebp - 4], 0x1d
lea ecx, [ebp - 0x26d4]
call fcn.00401470
mov byte [ebp - 4], 0x18
lea ecx, [ebp - 0x26fc]
call fcn.00401470
jmp 0x5770b5
lea eax, [ebp - 0xa18]
push eax
lea ecx, [ebp - 0x26a8]
call fcn.00401430
mov esi, eax
mov byte [ebp - 4], 0x19
push str.Driver_version__
lea eax, [ebp - 0x26a4]
push eax
lea ecx, [ebp - 0x2688]
call fcn.00406d10
mov byte [ebp - 4], 0x1a
push esi
lea ecx, [ebp - 0x271c]
push ecx
mov ecx, eax
call fcn.00406be0
mov byte [ebp - 4], 0x1b
push 0x7053a0
lea ecx, [ebp - 0x26dc]
push ecx
mov ecx, eax
call fcn.00406d10
mov byte [ebp - 4], 0x1c
push eax
lea ecx, [ebp - 0x2684]
call fcn.00402510
mov byte [ebp - 4], 0x1b
lea ecx, [ebp - 0x26dc]
call fcn.00401470
mov byte [ebp - 4], 0x1a
lea ecx, [ebp - 0x271c]
call fcn.00401470
mov byte [ebp - 4], 0x19
lea ecx, [ebp - 0x26a4]
call fcn.00401470
mov byte [ebp - 4], 0x18
lea ecx, [ebp - 0x26a8]
call fcn.00401470
lea eax, [ebp - 0x2694]
push eax
lea eax, [ebp - 0x269c]
push eax
lea eax, [ebp - 0x2698]
push eax
lea edx, [ebp - 0x26b0]
lea ecx, [ebp - 0xa18]
call fcn.00421f70
add esp, 0xc
test al, al
je 0x5770a5
push dword [ebp - 0x2694]
push dword [ebp - 0x269c]
push dword [ebp - 0x2698]
push dword [ebp - 0x26b0]
push str._d._d._d._d
push 0x100
lea eax, [ebp - 0x218]
push eax
call fcn.0063439c
add esp, 0x1c
lea eax, [ebp - 0x218]
push eax
jmp 0x5770aa
push str.unknown
lea ecx, [ebp - 0x2684]
call fcn.00406bb0
lea ecx, [ebp - 0x2684]
call fcn.004e18e0
push dword [ebp - 0x224c]
push dword [ebp - 0x2250]
push dword [ebp - 0x2254]
push dword [ebp - 0x2258]
push str.VendorId:_08X__DeviceId:_08X__SubSysId:_08X__Revision:_08X
push 0x100
lea eax, [ebp - 0x218]
push eax
call fcn.0063439c
add esp, 0x1c
push str.Device_ids_:
lea eax, [ebp - 0x26c0]
push eax
lea ecx, [ebp - 0x2688]
call fcn.00406d10
mov byte [ebp - 4], 0x21
lea ecx, [ebp - 0x218]
push ecx
lea ecx, [ebp - 0x26b8]
push ecx
mov ecx, eax
call fcn.00406d10
mov byte [ebp - 4], 0x22
push eax
lea ecx, [ebp - 0x2684]
call fcn.00402510
mov byte [ebp - 4], 0x21
lea ecx, [ebp - 0x26b8]
call fcn.00401470
mov byte [ebp - 4], 0x18
lea ecx, [ebp - 0x26c0]
call fcn.00401470
lea ecx, [ebp - 0x2684]
call fcn.004e18e0
movzx eax, byte [ebp - 0x2239]
push eax
movzx eax, byte [ebp - 0x223a]
push eax
movzx eax, byte [ebp - 0x223b]
push eax
movzx eax, byte [ebp - 0x223c]
push eax
movzx eax, byte [ebp - 0x223d]
push eax
movzx eax, byte [ebp - 0x223e]
push eax
movzx eax, byte [ebp - 0x223f]
push eax
movzx eax, byte [ebp - 0x2240]
push eax
movzx eax, word [ebp - 0x2242]
push eax
movzx eax, word [ebp - 0x2244]
push eax
push dword [ebp - 0x2248]
push str._08X__04X__04X__02X_02X_02X_02X_02X_02X_02X_02X
push 0x100
lea eax, [ebp - 0x218]
push eax
call fcn.0063439c
add esp, 0x38
push str.Unique_driver_device_id_:
lea eax, [ebp - 0x26d0]
push eax
lea ecx, [ebp - 0x2688]
call fcn.00406d10
mov byte [ebp - 4], 0x23
lea ecx, [ebp - 0x218]
push ecx
lea ecx, [ebp - 0x26c8]
push ecx
mov ecx, eax
call fcn.00406d10
mov byte [ebp - 4], 0x24
push eax
lea ecx, [ebp - 0x2684]
call fcn.00402510
mov byte [ebp - 4], 0x23
lea ecx, [ebp - 0x26c8]
call fcn.00401470
mov byte [ebp - 4], 0x18
lea ecx, [ebp - 0x26d0]
call fcn.00401470
lea ecx, [ebp - 0x2684]
call fcn.004e18e0
push dword [ebp - 0x2238]
push str._08x
push 0x100
lea eax, [ebp - 0x218]
push eax
call fcn.0063439c
add esp, 0x10
push str.WHQL_level_:
lea eax, [ebp - 0x26e0]
push eax
lea ecx, [ebp - 0x2688]
call fcn.00406d10
mov byte [ebp - 4], 0x25
lea ecx, [ebp - 0x218]
push ecx
lea ecx, [ebp - 0x26d8]
push ecx
mov ecx, eax
call fcn.00406d10
mov byte [ebp - 4], 0x26
push eax
lea ecx, [ebp - 0x2684]
call fcn.00402510
mov byte [ebp - 4], 0x25
lea ecx, [ebp - 0x26d8]
call fcn.00401470
mov byte [ebp - 4], 0x18
lea ecx, [ebp - 0x26e0]
call fcn.00401470
lea ecx, [ebp - 0x2684]
call fcn.004e18e0
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x2230]
call fcn.0040aca0
inc ebx
mov dword [ebp - 0x26e8], ebx
jmp 0x5769c0
mov ecx, dword [0x788f74]
mov eax, dword [0x788f78]
test eax, eax
cmovne ecx, eax
push ecx
lea ecx, [ebp - 0x268c]
call fcn.00401430
mov byte [ebp - 4], 0x27
lea ecx, [ebp - 0x268c]
call fcn.004e18e0
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x268c]
call fcn.00401470
inc ebx
mov dword [ebp - 0x26e8], ebx
jmp 0x5769c0
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x2684]
call fcn.00401470
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x2688]
call fcn.00401470
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.00633732
mov esp, ebp
pop ebp
ret