Function at 0x5b12be
Capabilities:
Check for time delay via queryperformancecounter

Disassembly:
push 0x4c0
mov eax, 0x6d898f
call fcn.00648bbe
mov dword [ebp - 0x424], ecx
mov edi, dword [ebp + 8]
xor ebx, ebx
mov eax, ebx
mov dword [ebp - 0x408], edi
push 0x75b99c
push ecx
mov dword [ebp - 0x3ec], eax
mov dword [ebp - 0x3f0], eax
call fcn.005a1dac
pop ecx
mov ecx, eax
call fcn.005a1e39
mov esi, dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
lea eax, [ebp - 0x404]
push eax
call esi
mov eax, dword [ebp - 0x404]
mov dword [ebp - 0x3fc], eax
mov eax, dword [ebp - 0x400]
mov dword [ebp - 0x3f8], eax
lea eax, [ebp - 0x404]
push eax
call esi
mov eax, dword [ebp - 0x404]
lea ecx, [ebp - 0x194]
mov dword [ebp - 0x3fc], eax
mov eax, dword [ebp - 0x400]
push 0x541
mov dword [ebp - 0x3f8], eax
mov dword [ebp - 0x19c], 0x71eec0
call fcn.006c22f9
mov dword [ebp - 0x164], ebx
mov dword [ebp - 4], ebx
lea ecx, [ebp - 0x154]
push 0x542
mov dword [ebp - 0x15c], 0x71eef0
call fcn.006c22f9
mov dword [ebp - 0x124], ebx
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x114]
push 0x543
mov dword [ebp - 0x11c], 0x71ef10
call fcn.006c22f9
mov dword [ebp - 0xe4], ebx
push 2
pop eax
mov byte [ebp - 4], al
lea ecx, [ebp - 0xd4]
push 0x544
mov dword [ebp - 0xdc], 0x71eeb0
call fcn.006c22f9
mov dword [ebp - 0xa4], ebx
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x94]
push 0x545
mov dword [ebp - 0x9c], 0x71eed0
call fcn.006c22f9
mov dword [ebp - 0x64], 0x75b9f4
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x54]
push 0x7d8
mov dword [ebp - 0x5c], 0x71ef20
call fcn.006c22f9
mov dword [ebp - 0x24], ebx
lea eax, [ebp - 0x3e8]
mov dword [ebp - 4], 5
mov ecx, dword [edi]
push eax
call fcn.005acede
push eax
lea ecx, [ebp - 0x49c]
mov byte [ebp - 4], 6
call fcn.005ad02d
mov byte [ebp - 4], 9
mov ecx, dword [ebp - 0x3e4]
test ecx, ecx
je 0x5b144c
call fcn.0051578b
lea ecx, [ebp - 0x420]
mov byte [ebp - 4], 8
call fcn.00592e4d
mov byte [ebp - 4], 0xa
mov edi, dword [ebp - 0x420]
mov eax, dword [edi + 4]
mov esi, dword [edi]
cmp esi, eax
je 0x5b1487
mov edi, eax
mov ecx, esi
call fcn.00598e30
add esi, 0xcc
cmp esi, edi
jne 0x5b1470
mov edi, dword [ebp - 0x420]
mov eax, dword [edi]
lea esi, [ebp - 0x19c]
mov dword [edi + 4], eax
lea edi, [ebp - 0x1c]
mov al, 1
mov dword [ebp - 0x3d0], esi
lea ecx, [ebp - 0x3d0]
test al, al
je 0x5b1d7b
cmp esi, edi
je 0x5b1d7b
mov ecx, dword [ecx]
mov al, bl
mov dword [ebp - 0x3d0], ecx
test al, al
jne 0x5b1d73
cmp dword [ecx], 0
push 6
pop eax
push 2
pop edx
cmovne eax, edx
push eax
push ebx
push ebx
push dword [ecx]
call dword [sym.imp.SETUPAPI.dll_SetupDiGetClassDevsW]
push eax
lea ecx, [ebp - 0x200]
call fcn.005db952
push str.Priph_SetupDiGetClassDevs
lea ecx, [ebp - 0x404]
mov byte [ebp - 4], 0xb
call fcn.0059de04
mov byte [ebp - 4], 0xc
call fcn.006460e0
mov dword [ebp - 4], 0xb
lea ecx, [ebp - 0x200]
call fcn.005db9e4
test eax, eax
je 0x5b1d3f
mov byte [ebp - 4], 0xe
call fcn.006460e0
mov dword [ebp - 4], 0xb
mov eax, dword [ebp - 0x3d0]
cmp dword [eax + 0x38], ebx
je 0x5b1581
push 0x16
lea eax, [ebp - 0x40c]
push eax
lea ecx, [ebp - 0x200]
call fcn.005dba03
mov byte [ebp - 4], 0x10
mov ecx, dword [ebp - 0x3ec]
or ecx, 1
mov dword [ebp - 0x3ec], ecx
mov dword [ebp - 0x3f0], ecx
mov ecx, dword [ebp - 0x3d0]
push dword [ecx + 0x38]
mov ecx, eax
call fcn.0052d86b
mov byte [ebp - 0x3c5], bl
test eax, eax
jne 0x5b1588
mov byte [ebp - 0x3c5], 1
mov dword [ebp - 4], 0xb
mov eax, dword [ebp - 0x3ec]
test al, 1
je 0x5b15b0
mov ecx, dword [ebp - 0x40c]
and eax, 0xfffffffe
mov dword [ebp - 0x3ec], eax
lea ecx, [ecx - 0x10]
call fcn.00515ed6
cmp byte [ebp - 0x3c5], 0
je 0x5b150c
push ebx
lea eax, [ebp - 0x3d8]
push eax
lea ecx, [ebp - 0x200]
call fcn.005dba03
lea eax, [ebp - 0x3d8]
mov byte [ebp - 4], 0x11
push eax
lea ecx, [ebp - 0x1cc]
call fcn.006c22ac
lea eax, [ebp - 0x1cc]
mov byte [ebp - 4], 0x12
push eax
lea ecx, [ebp - 0x25c]
mov dword [ebp - 0x264], ebx
call fcn.0052b35a
mov dword [ebp - 0x22c], ebx
mov dword [ebp - 0x20c], ebx
mov dword [ebp - 0x208], ebx
lea eax, [ebp - 0x264]
mov byte [ebp - 4], 0x13
push eax
lea eax, [ebp - 0x470]
push eax
lea ecx, [ebp - 0x49c]
call fcn.005ad1f2
push eax
lea ecx, [ebp - 0x43c]
mov byte [ebp - 4], 0x14
call fcn.005ad02d
mov byte [ebp - 4], 0x17
mov ecx, dword [ebp - 0x46c]
test ecx, ecx
je 0x5b1654
call fcn.0051578b
lea ecx, [ebp - 0x22c]
mov byte [ebp - 4], 0x19
call fcn.0051f634
lea ecx, [ebp - 0x25c]
call fcn.006c2344
lea ecx, [ebp - 0x1cc]
call fcn.006c2344
lea ecx, [ebp - 0x34c]
call fcn.005b1eb1
push 0x547
lea ecx, [ebp - 0x1cc]
mov byte [ebp - 4], 0x1b
call fcn.006c22f9
push ebx
mov byte [ebp - 4], 0x1c
mov ecx, dword [ebp - 0x3d0]
add ecx, 8
push ebx
push ecx
push eax
lea ecx, [ebp - 0x27c]
call fcn.00530696
push eax
lea eax, [ebp - 0x478]
mov byte [ebp - 4], 0x1d
push eax
lea ecx, [ebp - 0x43c]
call fcn.005ad24e
mov byte [ebp - 4], 0x1e
mov ecx, dword [ebp - 0x474]
test ecx, ecx
je 0x5b16de
call fcn.0051578b
lea ecx, [ebp - 0x27c]
call fcn.00530663
lea ecx, [ebp - 0x1cc]
mov byte [ebp - 4], 0x1b
call fcn.006c2344
mov ecx, dword [ebp - 0x3d0]
lea eax, [ebp - 0x410]
push eax
lea ecx, [ecx + 8]
call fcn.006c22d9
mov edx, eax
mov byte [ebp - 4], 0x1f
lea ecx, [ebp - 0x1b4]
call fcn.00590d8b
lea ecx, [ebp - 0x324]
mov byte [ebp - 4], 0x20
cmp ecx, eax
je 0x5b1735
push 0xffffffffffffffff
push ebx
push eax
call fcn.0052900d
push ebx
push 1
lea ecx, [ebp - 0x1b4]
mov byte [ebp - 0x328], 1
call fcn.00529114
mov byte [ebp - 4], 0x1b
mov ecx, dword [ebp - 0x410]
lea ecx, [ecx - 0x10]
call fcn.00515ed6
lea eax, [ebp - 0x3d8]
push eax
lea ecx, [ebp - 0x1cc]
call fcn.006c22ac
push 0x548
lea ecx, [ebp - 0x234]
mov byte [ebp - 4], 0x21
call fcn.006c22f9
push ebx
push ebx
lea ecx, [ebp - 0x1cc]
mov byte [ebp - 4], 0x22
push ecx
push eax
lea ecx, [ebp - 0x3c4]
call fcn.00530696
push eax
lea eax, [ebp - 0x444]
mov byte [ebp - 4], 0x23
push eax
lea ecx, [ebp - 0x43c]
call fcn.005ad24e
mov byte [ebp - 4], 0x24
mov ecx, dword [ebp - 0x440]
test ecx, ecx
je 0x5b17c5
call fcn.0051578b
lea ecx, [ebp - 0x3c4]
call fcn.00530663
lea ecx, [ebp - 0x234]
call fcn.006c2344
lea ecx, [ebp - 0x1cc]
mov byte [ebp - 4], 0x1b
call fcn.006c2344
lea edx, [ebp - 0x3d8]
lea ecx, [ebp - 0x1b4]
call fcn.00590d8b
lea ecx, [ebp - 0x340]
mov byte [ebp - 4], 0x25
cmp ecx, eax
je 0x5b1812
push 0xffffffffffffffff
push ebx
push eax
call fcn.0052900d
push ebx
push 1
lea ecx, [ebp - 0x1b4]
mov byte [ebp - 0x344], 1
mov byte [ebp - 4], 0x1b
call fcn.00529114
push ecx
lea eax, [ebp - 0x468]
push eax
lea ecx, [ebp - 0x200]
call fcn.005dc226
lea eax, [ebp - 0x3cc]
push eax
lea ecx, [ebp - 0x200]
call fcn.005dc079
mov byte [ebp - 4], 0x26
mov eax, dword [ebp - 0x3cc]
mov dword [ebp - 0x3f0], eax
mov eax, dword [ebp - 0x3d8]
mov dword [ebp - 0x414], eax
lea eax, [ebp - 0x3f0]
push eax
lea eax, [ebp - 0x414]
push eax
push str.Peripheral_name_s__vendor_s
push ecx
call fcn.00519db0
mov ecx, eax
call fcn.005ace1b
mov eax, dword [ebp - 0x3cc]
cmp dword [eax - 0xc], 0
jne 0x5b18ce
push 0xb
lea eax, [ebp - 0x418]
push eax
lea ecx, [ebp - 0x200]
call fcn.005dba03
push eax
lea ecx, [ebp - 0x3cc]
mov byte [ebp - 4], 0x27
call fcn.005154cf
mov byte [ebp - 4], 0x26
mov ecx, dword [ebp - 0x418]
lea ecx, [ecx - 0x10]
call fcn.00515ed6
lea ecx, [ebp - 0x3cc]
call fcn.005a115e
test al, al
jne 0x5b191e
lea edx, [ebp - 0x3cc]
lea ecx, [ebp - 0x1b4]
call fcn.00590d8b
lea ecx, [ebp - 0x308]
mov byte [ebp - 4], 0x28
cmp ecx, eax
je 0x5b1905
push 0xffffffffffffffff
push ebx
push eax
call fcn.0052900d
push ebx
push 1
lea ecx, [ebp - 0x1b4]
mov byte [ebp - 0x30c], 1
mov byte [ebp - 4], 0x26
call fcn.00529114
mov ax, word [ebp - 0x466]
lea ecx, [ebp - 0x3cc]
mov word [ebp - 0x34a], ax
mov ax, word [ebp - 0x468]
mov byte [ebp - 0x34c], 1
mov word [ebp - 0x346], ax
mov byte [ebp - 0x348], 1
call fcn.005a115e
test al, al
jne 0x5b1a2a
lea eax, [ebp - 0x3cc]
push eax
lea ecx, [ebp - 0x1cc]
call fcn.006c22ac
push 0x549
lea ecx, [ebp - 0x234]
mov byte [ebp - 4], 0x29
call fcn.006c22f9
push ebx
push ebx
lea ecx, [ebp - 0x1cc]
mov byte [ebp - 4], 0x2a
push ecx
push eax
lea ecx, [ebp - 0x3c4]
call fcn.00530696
push eax
lea eax, [ebp - 0x44c]
mov byte [ebp - 4], 0x2b
push eax
lea ecx, [ebp - 0x43c]
call fcn.005ad24e
mov byte [ebp - 4], 0x2c
mov ecx, dword [ebp - 0x448]
test ecx, ecx
je 0x5b19c4
call fcn.0051578b
lea ecx, [ebp - 0x3c4]
call fcn.00530663
lea ecx, [ebp - 0x234]
call fcn.006c2344
lea ecx, [ebp - 0x1cc]
mov byte [ebp - 4], 0x26
call fcn.006c2344
lea edx, [ebp - 0x3cc]
lea ecx, [ebp - 0x1b4]
call fcn.00590d8b
lea ecx, [ebp - 0x308]
mov byte [ebp - 4], 0x2d
cmp ecx, eax
je 0x5b1a11
push 0xffffffffffffffff
push ebx
push eax
call fcn.0052900d
push ebx
push 1
lea ecx, [ebp - 0x1b4]
mov byte [ebp - 0x30c], 1
mov byte [ebp - 4], 0x26
call fcn.00529114
push 0xc
lea eax, [ebp - 0x3d4]
push eax
lea ecx, [ebp - 0x200]
call fcn.005dba03
mov byte [ebp - 4], 0x2e
mov eax, dword [ebp - 0x3d4]
cmp dword [eax - 0xc], 0
je 0x5b1b21
lea eax, [ebp - 0x3d4]
push eax
lea ecx, [ebp - 0x1cc]
call fcn.006c22ac
push 0x54b
lea ecx, [ebp - 0x234]
mov byte [ebp - 4], 0x2f
call fcn.006c22f9
push ebx
push ebx
lea ecx, [ebp - 0x1cc]
mov byte [ebp - 4], 0x30
push ecx
push eax
lea ecx, [ebp - 0x3c4]
call fcn.00530696
push eax
lea eax, [ebp - 0x454]
mov byte [ebp - 4], 0x31
push eax
lea ecx, [ebp - 0x43c]
call fcn.005ad24e
mov byte [ebp - 4], 0x32
mov ecx, dword [ebp - 0x450]
test ecx, ecx
je 0x5b1abb
call fcn.0051578b
lea ecx, [ebp - 0x3c4]
call fcn.00530663
lea ecx, [ebp - 0x234]
call fcn.006c2344
lea ecx, [ebp - 0x1cc]
mov byte [ebp - 4], 0x2e
call fcn.006c2344
lea edx, [ebp - 0x3d4]
lea ecx, [ebp - 0x1b4]
call fcn.00590d8b
lea ecx, [ebp - 0x2ec]
mov byte [ebp - 4], 0x33
cmp ecx, eax
je 0x5b1b08
push 0xffffffffffffffff
push ebx
push eax
call fcn.0052900d
push ebx
push 1
lea ecx, [ebp - 0x1b4]
mov byte [ebp - 0x2f0], 1
mov byte [ebp - 4], 0x2e
call fcn.00529114
lea edx, [ebp - 0x200]
lea ecx, [ebp - 0x4cc]
call fcn.005dc434
lea eax, [ebp - 0x3dc]
mov byte [ebp - 4], 0x34
push eax
lea ecx, [ebp - 0x4cc]
call fcn.006c22d9
mov ecx, dword [ebp - 0x3dc]
mov eax, dword [eax]
lea ecx, [ecx - 0x10]
mov ebx, dword [eax - 0xc]
call fcn.00515ed6
test ebx, ebx
je 0x5b1c35
push 0x54a
lea ecx, [ebp - 0x234]
call fcn.006c22f9
xor ebx, ebx
mov byte [ebp - 4], 0x35
push ebx
push ebx
lea ecx, [ebp - 0x4cc]
push ecx
push eax
lea ecx, [ebp - 0x3c4]
call fcn.00530696
push eax
lea eax, [ebp - 0x45c]
mov byte [ebp - 4], 0x36
push eax
lea ecx, [ebp - 0x43c]
call fcn.005ad24e
mov byte [ebp - 4], 0x37
mov ecx, dword [ebp - 0x458]
test ecx, ecx
je 0x5b1bb8
call fcn.0051578b
lea ecx, [ebp - 0x3c4]
call fcn.00530663
lea ecx, [ebp - 0x234]
mov byte [ebp - 4], 0x34
call fcn.006c2344
lea eax, [ebp - 0x3e4]
push eax
lea ecx, [ebp - 0x4cc]
call fcn.006c22d9
mov edx, eax
mov byte [ebp - 4], 0x38
lea ecx, [ebp - 0x1b4]
call fcn.00590d8b
lea ecx, [ebp - 0x2d0]
mov byte [ebp - 4], 0x39
cmp ecx, eax
je 0x5b1c0c
push 0xffffffffffffffff
push ebx
push eax
call fcn.0052900d
push ebx
push 1
lea ecx, [ebp - 0x1b4]
mov byte [ebp - 0x2d4], 1
call fcn.00529114
mov byte [ebp - 4], 0x34
mov ecx, dword [ebp - 0x3e4]
lea ecx, [ecx - 0x10]
call fcn.00515ed6
jmp 0x5b1c37
xor ebx, ebx
push str.Priph_Before_FillDriver
lea ecx, [ebp - 0x404]
call fcn.0059de04
lea eax, [ebp - 0x34c]
push eax
lea edx, [ebp - 0x43c]
lea ecx, [ebp - 0x200]
call fcn.005b1f3a
pop ecx
call fcn.00593600
cmp dword [eax + 0xf0], ebx
jne 0x5b1c9f
push str.NULL_PTR
lea ecx, [ebp - 0x408]
call fcn.0051d148
mov byte [ebp - 4], 0x3a
lea ecx, [ebp - 0x484]
push dword [eax]
call fcn.00517192
push 0x7fc504
lea eax, [ebp - 0x484]
push eax
call fcn.00671426
call fcn.00593600
lea ecx, [ebp - 0x34c]
push ecx
mov ecx, dword [eax + 0xf0]
call fcn.00593b90
push str.Peripherals_fill_drivers_end
lea ecx, [ebp - 0x404]
call fcn.0059de04
lea ecx, [ebp - 0x4cc]
call fcn.006c2344
mov ecx, dword [ebp - 0x3d4]
lea ecx, [ecx - 0x10]
call fcn.00515ed6
mov ecx, dword [ebp - 0x3cc]
lea ecx, [ecx - 0x10]
call fcn.00515ed6
lea ecx, [ebp - 0x34c]
call fcn.00598e30
lea ecx, [ebp - 0x43c]
call fcn.005ad08b
mov ecx, dword [ebp - 0x3d8]
lea ecx, [ecx - 0x10]
call fcn.00515ed6
jmp 0x5b150c
mov byte [ebp - 4], 0xa
push dword [ebp - 0x200]
call dword [sym.imp.SETUPAPI.dll_SetupDiDestroyDeviceInfoList]
lea ecx, [ebp - 0x1dc]
call fcn.005a1d9c
mov ecx, dword [ebp - 0x3d0]
mov al, 1
jmp 0x5b14bd
add esi, 0x40
jmp 0x5b1497
push str.Peripherals_fill_devices
lea ecx, [ebp - 0x404]
call fcn.0059de04
push 0xc
call fcn.006484ac
mov esi, eax
pop ecx
mov dword [ebp - 0x3e4], esi
mov dword [esi], ebx
mov dword [esi + 4], ebx
mov dword [esi + 8], ebx
mov ecx, esi
mov byte [ebp - 4], 0x3c
call fcn.005de6e1
mov dword [ebp - 0x3e0], esi
mov dword [ebp - 0x3dc], ebx
push esi
lea ecx, [ebp - 0x3e4]
mov byte [ebp - 4], 0x3d
call fcn.005b2503
mov edx, dword [ebp - 0x3dc]
mov ecx, dword [eax]
mov dword [ebp - 0x3dc], ecx
mov dword [eax], edx
mov byte [ebp - 4], 0x3e
mov ecx, dword [ebp - 0x3e4]
test ecx, ecx
je 0x5b1ded
call fcn.0051578b
push esi
lea eax, [ebp - 0x3e0]
push esi
push eax
call fcn.005151d0
mov ebx, dword [ebp - 0x424]
add esp, 0xc
mov ecx, dword [ebp - 0x3e0]
mov eax, dword [ebx]
mov dword [ebx], ecx
mov ecx, dword [ebx + 4]
mov dword [ebp - 0x3e0], eax
mov eax, dword [ebp - 0x3dc]
mov dword [ebx + 4], eax
mov dword [ebp - 0x3dc], ecx
mov byte [ebp - 4], 0x3f
test ecx, ecx
je 0x5b1e33
call fcn.0051578b
lea eax, [ebp - 0x49c]
mov byte [ebp - 4], 0xa
mov ecx, dword [ebx]
push eax
call fcn.005dd43d
push str.Peripherals_fill_printers
lea ecx, [ebp - 0x404]
call fcn.0059de04
push str._________Peripherials_section_total
lea ecx, [ebp - 0x404]
call fcn.0059df92
mov ecx, dword [ebp - 0x408]
mov ecx, dword [ecx]
call fcn.005acef0
mov byte [ebp - 4], 0x40
mov ecx, dword [ebp - 0x41c]
test ecx, ecx
je 0x5b1e85
call fcn.0051578b
lea ecx, [ebp - 0x49c]
call fcn.005ad08b
or dword [ebp - 4], 0xffffffff
lea eax, [ebp - 0x19c]
push 0x541ab0
push 6
push 0x40
push eax
call fcn.00648500
call fcn.00648b0b
ret 4