Function at 0x58f285
Capabilities:
Print debug messages

Disassembly:
push 0x9b8
mov eax, 0x60b72f
call fcn.004db4be
mov dword [ebp - 0x954], ecx
xor ebx, ebx
mov dword [ebp - 0x964], ebx
mov edi, dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
push str.xfy_debug_begin_scan_devices.
call edi
push 0x67327c
lea ecx, [ebp - 0x944]
call fcn.0040cd8e
and dword [ebp - 4], ebx
mov esi, dword [ebp - 0x944]
cmp dword [esi - 8], ebx
jne 0x58f348
mov ecx, dword [0x6731ec]
lea edx, [ebp - 0x940]
and dword [ebp - 0x940], ebx
push edx
mov eax, dword [ecx]
call dword [eax + 0x24]
test eax, eax
je 0x58f947
cmp dword [ebp - 0x940], ebx
je 0x58f947
push dword [ebp - 0x940]
call fcn.00505070
pop ecx
test eax, eax
jne 0x58f31a
push dword [ebp - 0x940]
call dword [sym.imp.ole32.dll_CoTaskMemFree]
jmp 0x58f947
mov esi, dword [ebp - 0x940]
test esi, esi
jne 0x58f328
xor eax, eax
jmp 0x58f32f
push esi
call fcn.00505070
pop ecx
push esi
push eax
lea ecx, [ebp - 0x944]
call fcn.0040f305
push dword [ebp - 0x940]
call dword [sym.imp.ole32.dll_CoTaskMemFree]
mov esi, 0x63969c
push esi
call fcn.00505070
pop ecx
push esi
push eax
lea ecx, [ebp - 0x944]
call fcn.0042aaaa
push str.xfy_debug_have_scanned_some_vid_and_pid.
call edi
jmp 0x58f92a
cmp dword [esi - 8], 0
je 0x58f947
push ecx
push 0x7c
lea ecx, [ebp - 0x944]
call fcn.00449df1
push eax
lea eax, [ebp - 0x940]
push eax
lea ecx, [ebp - 0x944]
call fcn.004395d7
push 0x104
xor edi, edi
mov byte [ebp - 4], 1
lea eax, [ebp - 0x114]
push edi
push eax
call fcn.004e0bc0
push 0x104
lea eax, [ebp - 0x31c]
push edi
push eax
call fcn.004e0bc0
push 0x104
lea eax, [ebp - 0x218]
push edi
push eax
call fcn.004e0bc0
mov eax, dword [ebp - 0x940]
add esp, 0x24
mov ecx, dword [eax - 8]
mov eax, dword [0x6731ec]
mov edi, dword [eax]
lea eax, [ebp - 0x218]
push eax
lea eax, [ebp - 0x31c]
push eax
lea eax, [ebp - 0x114]
push eax
push ecx
lea ecx, [ebp - 0x940]
call fcn.0040cccd
mov ecx, dword [0x6731ec]
push eax
call dword [edi + 0x28]
push 0xffffffffffffffff
lea ecx, [ebp - 0x940]
call fcn.0040cc99
push ecx
push 0x7c
lea ecx, [ebp - 0x944]
call fcn.00449df1
mov ecx, dword [esi - 8]
inc eax
sub ecx, eax
push ecx
push eax
lea eax, [ebp - 0x958]
push eax
lea ecx, [ebp - 0x944]
call fcn.00439672
lea eax, [ebp - 0x958]
push eax
lea ecx, [ebp - 0x944]
call fcn.0040cd2a
mov ecx, dword [ebp - 0x958]
mov esi, 0x668010
add ecx, 0xfffffff4
cmp ecx, esi
je 0x58f470
call fcn.00407965
mov edi, dword [ebp - 0x954]
mov ecx, dword [edi + 0x63e8]
test ecx, ecx
je 0x58f5be
mov eax, dword [0x668294]
mov dword [ebp - 0x95c], eax
mov dword [ebp - 0x950], eax
mov dword [ebp - 0x94c], eax
lea eax, [ebp - 0x94c]
push eax
lea eax, [ebp - 0x950]
push eax
lea eax, [ebp - 0x95c]
push eax
call fcn.00543659
push 0
lea edx, [ebp - 0x114]
lea ecx, [ebp - 0x96c]
call fcn.00407b07
mov edi, dword [ebp - 0x95c]
or ebx, 1
push dword [eax]
push edi
call fcn.005144ec
mov esi, dword [ebp - 0x94c]
add esp, 0xc
test eax, eax
jne 0x58f512
push 0
lea edx, [ebp - 0x218]
lea ecx, [ebp - 0x968]
call fcn.00407b07
or ebx, 2
push dword [eax]
push esi
call fcn.005144ec
add esp, 0xc
mov byte [ebp - 0x945], 1
test eax, eax
je 0x58f519
mov byte [ebp - 0x945], 0
test bl, 2
je 0x58f537
mov ecx, dword [ebp - 0x968]
and ebx, 0xfffffffd
add ecx, 0xfffffff4
cmp ecx, 0x668010
je 0x58f537
call fcn.00407965
mov ecx, dword [ebp - 0x96c]
and ebx, 0xfffffffe
add ecx, 0xfffffff4
cmp ecx, 0x668010
je 0x58f550
call fcn.00407965
cmp byte [ebp - 0x945], 0
lea ecx, [esi - 0xc]
mov esi, 0x668010
je 0x58f591
cmp ecx, esi
je 0x58f56a
call fcn.00407965
mov ecx, dword [ebp - 0x950]
add ecx, 0xfffffff4
cmp ecx, esi
je 0x58f57c
call fcn.00407965
lea ecx, [edi - 0xc]
cmp ecx, esi
je 0x58f914
call fcn.00407965
jmp 0x58f914
cmp ecx, esi
je 0x58f59a
call fcn.00407965
mov ecx, dword [ebp - 0x950]
add ecx, 0xfffffff4
cmp ecx, esi
je 0x58f5ac
call fcn.00407965
lea ecx, [edi - 0xc]
cmp ecx, esi
je 0x58f5b8
call fcn.00407965
mov edi, dword [ebp - 0x954]
push ecx
mov ecx, esp
lea edx, [ebp - 0x218]
push 0
call fcn.00407b07
pop ecx
call fcn.004566a0
pop ecx
test eax, eax
jne 0x58f914
mov esi, dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
push str.xfy_debug_to_check_vid_and_pid_from_server.
call esi
push dword [edi + 0x63f0]
mov ecx, dword [0x6731ec]
lea edx, [ebp - 0x93c]
push 0x6751d4
push edx
lea edx, [ebp - 0x31c]
mov eax, dword [ecx]
push edx
lea edx, [ebp - 0x114]
push edx
call dword [eax + 0x34]
test eax, eax
je 0x58f90f
push str.xfy_debug_request_server_successful.
call esi
lea ecx, [ebp - 0x9a8]
call fcn.0045877e
push 0
lea edx, [ebp - 0x114]
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x970]
call fcn.00407b07
pop ecx
push eax
lea ecx, [ebp - 0x9a8]
call fcn.0040d242
mov ecx, dword [ebp - 0x970]
mov esi, 0x668010
add ecx, 0xfffffff4
cmp ecx, esi
je 0x58f66a
call fcn.00407965
push 0
lea edx, [ebp - 0x31c]
lea ecx, [ebp - 0x974]
call fcn.00407b07
pop ecx
push eax
lea ecx, [ebp - 0x9a4]
call fcn.0040d242
mov ecx, dword [ebp - 0x974]
add ecx, 0xfffffff4
cmp ecx, esi
je 0x58f69c
call fcn.00407965
push 0
lea edx, [ebp - 0x218]
lea ecx, [ebp - 0x978]
call fcn.00407b07
pop ecx
push eax
lea ecx, [ebp - 0x9a0]
call fcn.0040d242
mov ecx, dword [ebp - 0x978]
add ecx, 0xfffffff4
cmp ecx, esi
je 0x58f6ce
call fcn.00407965
push 0
push ecx
lea eax, [ebp - 0x72c]
mov ecx, esp
push eax
call fcn.0041ddcb
lea ecx, [ebp - 0x980]
call fcn.005dd954
pop ecx
lea ecx, [ebp - 0x97c]
mov edx, dword [eax]
call fcn.00407b07
pop ecx
push eax
lea ecx, [ebp - 0x998]
call fcn.0040d242
mov ecx, dword [ebp - 0x97c]
add ecx, 0xfffffff4
cmp ecx, esi
je 0x58f717
call fcn.00407965
mov ecx, dword [ebp - 0x980]
add ecx, 0xfffffff4
cmp ecx, esi
je 0x58f729
call fcn.00407965
push 0
lea edx, [ebp - 0x628]
lea ecx, [ebp - 0x984]
call fcn.00407b07
pop ecx
push eax
lea ecx, [ebp - 0x994]
call fcn.0040d242
mov ecx, dword [ebp - 0x984]
add ecx, 0xfffffff4
cmp ecx, esi
je 0x58f75b
call fcn.00407965
push 0
lea edx, [ebp - 0x830]
lea ecx, [ebp - 0x988]
call fcn.00407b07
pop ecx
push eax
lea ecx, [ebp - 0x99c]
call fcn.0040d242
mov ecx, dword [ebp - 0x988]
add ecx, 0xfffffff4
cmp ecx, esi
je 0x58f78d
call fcn.00407965
push 0
lea edx, [ebp - 0x524]
lea ecx, [ebp - 0x98c]
call fcn.00407b07
pop ecx
push eax
lea ecx, [ebp - 0x990]
call fcn.0040d242
mov ecx, dword [ebp - 0x98c]
add ecx, 0xfffffff4
cmp ecx, esi
je 0x58f7bf
call fcn.00407965
mov eax, dword [edi + 0x63b4]
xor esi, esi
mov dword [ebp - 0x94c], eax
test eax, eax
jle 0x58f841
lea eax, [edi + 0x63b0]
push esi
mov ecx, eax
call fcn.0046f863
push dword [ebp - 0x9a8]
push dword [eax]
call fcn.005144ec
pop ecx
pop ecx
test eax, eax
jne 0x58f832
push esi
lea ecx, [edi + 0x63b0]
call fcn.0046f863
push dword [ebp - 0x9a4]
push dword [eax + 4]
call fcn.005144ec
pop ecx
pop ecx
test eax, eax
jne 0x58f832
push esi
lea ecx, [edi + 0x63b0]
call fcn.0046f863
push dword [ebp - 0x9a0]
push dword [eax + 8]
call fcn.005144ec
pop ecx
pop ecx
test eax, eax
je 0x58f853
inc esi
lea eax, [edi + 0x63b0]
cmp esi, dword [ebp - 0x94c]
jl 0x58f7d7
lea eax, [ebp - 0x9a8]
push eax
lea ecx, [edi + 0x63b0]
call fcn.0046f824
push str.xfy_debug_begin_show_pop_window.
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
push 0
push ecx
lea eax, [ebp - 0x934]
mov ecx, esp
push eax
call fcn.0041ddcb
lea ecx, [ebp - 0x964]
call fcn.005dd954
pop ecx
lea ecx, [ebp - 0x960]
mov edx, dword [eax]
call fcn.00407b07
pop ecx
mov ecx, dword [ebp - 0x964]
mov esi, 0x668010
add ecx, 0xfffffff4
cmp ecx, esi
je 0x58f8a0
call fcn.00407965
push ecx
push dword [edi + 4]
push ecx
push dword [ebp - 0x938]
lea ecx, [ebp - 0x9c4]
push dword [ebp - 0x93c]
push dword [ebp - 0x9a0]
push dword [ebp - 0x960]
call fcn.0045658a
lea eax, [ebp - 0x9c4]
push eax
push 0
push 0x807
push dword [edi + 4]
call dword [sym.imp.USER32.dll_SendMessageW]
inc dword [0x675608]
lea ecx, [ebp - 0x9c4]
call fcn.0040bf26
mov ecx, dword [ebp - 0x960]
add ecx, 0xfffffff4
cmp ecx, esi
je 0x58f902
call fcn.00407965
lea ecx, [ebp - 0x9a8]
call fcn.004587b8
jmp 0x58f914
mov esi, 0x668010
mov byte [ebp - 4], 0
mov ecx, dword [ebp - 0x940]
add ecx, 0xfffffff4
cmp ecx, esi
je 0x58f92a
call fcn.00407965
push ecx
push 0x7c
lea ecx, [ebp - 0x944]
call fcn.00449df1
mov esi, dword [ebp - 0x944]
cmp eax, 0xffffffff
jne 0x58f36d
lea ecx, [esi - 0xc]
cmp ecx, 0x668010
je 0x58f957
call fcn.00407965
call fcn.004db46d
ret