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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0xdbc
lea eax, [esp + 0x80]
mov dword [esp], 0
mov dword [esp + 4], eax
call sym._libusb_get_device_list_8
sub esp, 8
test eax, eax
mov dword [esp + 0x7c], eax
js 0x435fa9
jne 0x436018
cmp byte [0x745ef7], 0
jne 0x435f4d
cmp byte [0x732fa0], 0
jne 0x435f4d
mov eax, dword [0x5bc2e0]
test eax, eax
jle 0x435f84
mov dword [esp + 8], str.USB_all:_found_no_devices
lea ebx, [esp + 0x3b0]
mov dword [esp + 4], 0xa00
mov dword [esp], ebx
call sym._snprintf_4
mov dword [esp + 8], 0
mov dword [esp + 4], ebx
mov dword [esp], 1
call sym.__applog
mov eax, dword [esp + 0x80]
mov dword [esp + 4], 1
mov dword [esp], eax
call sym._libusb_free_device_list_8
sub esp, 8
add esp, 0xdbc
pop ebx
pop esi
pop edi
pop ebp
ret
cmp byte [0x745ef7], 0
jne 0x435fbf
cmp byte [0x732fa0], 0
je 0x436a40
mov edi, dword [esp + 0x7c]
mov dword [esp], edi
call sym._libusb_error_name_4
sub esp, 4
lea ebx, [esp + 0x3b0]
mov dword [esp + 0xc], edi
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.USB_all:_failed__err:__d___s
mov dword [esp + 4], 0xa00
mov dword [esp], ebx
call sym._snprintf_4
mov dword [esp + 4], ebx
mov dword [esp + 8], 0
mov dword [esp], 0
call sym.__applog
add esp, 0xdbc
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp], 0x2711
mov dword [esp + 0x88], 0x2710
call sym._malloc
test eax, eax
mov dword [esp + 0x84], eax
je 0x436b8c
mov edi, dword [esp + 0x7c]
mov dword [esp + 4], str.USB_all:_found__d_devices
mov dword [esp], eax
mov dword [esp + 8], edi
call sym._sprintf
mov eax, dword [esp + 0x84]
mov dword [esp], eax
call sym._strlen
cmp byte [0x745230], 0
mov dword [esp + 0x8c], eax
je 0x436a52
mov dword [esp + 0x64], 0xffffffff
mov dword [esp + 0x78], 0
mov eax, dword [esp + 0x80]
mov edi, dword [esp + 0x78]
mov ebx, dword [eax + edi*4]
lea eax, [esp + 0x9a]
mov dword [esp + 4], eax
mov dword [esp], ebx
call sym._libusb_get_device_descriptor_8
sub esp, 8
test eax, eax
je 0x4360be
cmp byte [0x745230], 0
jne 0x43648e
mov dword [esp], ebx
call sym._libusb_get_bus_number_4
sub esp, 4
mov edi, eax
mov dword [esp], ebx
call sym._libusb_get_device_address_4
sub esp, 4
cmp byte [0x745230], 0
mov esi, eax
jne 0x4362cf
cmp dword [0x5bc600], 0x21
je 0x436205
movzx edx, word [esp + 0xa2]
movzx ecx, word [esp + 0xa4]
mov eax, 0x5bc60c
jmp 0x43611d
add eax, 0x2c
cmp dword [eax - 0xc], 0x21
je 0x436205
cmp word [eax], dx
jne 0x436110
cmp word [eax + 2], cx
jne 0x436110
mov eax, dword [esp + 0xdd0]
add dword [esp + 0x64], 1
mov ebp, dword [esp + 0x64]
test eax, eax
jne 0x4363d1
mov eax, esi
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x18], edx
movzx esi, al
mov eax, edi
mov dword [esp + 0xc], ebp
movzx edi, al
lea eax, [esp + 0x3b0]
mov dword [esp + 0x14], esi
mov dword [esp + 0x10], edi
mov dword [esp + 8], str._n.USB_dev__d:_Bus__d_Device__d_ID:__04x:_04x
mov dword [esp + 4], 0x200
mov dword [esp], eax
mov dword [esp + 0x68], eax
call sym._snprintf_4
lea eax, [esp + 0x88]
mov edi, dword [esp + 0x68]
lea ecx, [esp + 0x8c]
mov dword [esp], eax
lea eax, [esp + 0x84]
mov edx, edi
call sym._append
lea eax, [esp + 0x90]
mov dword [esp], ebx
mov dword [esp + 4], eax
call sym._libusb_open_8
sub esp, 8
test eax, eax
je 0x4362e4
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 8], str._n___dev__d:_Failed_to_open__err__d
mov dword [esp + 4], 0x200
mov dword [esp], edi
mov dword [esp + 0xc], eax
call sym._snprintf_4
lea eax, [esp + 0x88]
lea ecx, [esp + 0x8c]
mov edx, edi
mov dword [esp], eax
lea eax, [esp + 0x84]
call sym._append
add dword [esp + 0x78], 1
mov eax, dword [esp + 0x78]
cmp dword [esp + 0x7c], eax
jg 0x436089
mov eax, dword [esp + 0x84]
mov dword [esp + 8], 0
mov dword [esp], 1
mov dword [esp + 4], eax
call sym.__applog
mov eax, dword [esp + 0x84]
mov dword [esp], eax
call sym._free
cmp dword [esp + 0x64], 0xffffffff
je 0x436a79
cmp byte [0x745ef7], 0
jne 0x436270
cmp byte [0x732fa0], 0
jne 0x436270
mov eax, dword [0x5bc2e0]
test eax, eax
jle 0x435f84
cmp byte [0x745230], 0
mov edx, str.known
mov eax, 0x5cdbf7
lea ebx, [esp + 0x3b0]
mov dword [esp + 8], str._d__sUSB_devices
mov dword [esp + 4], 0xa00
mov dword [esp], ebx
cmove eax, edx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x64]
add eax, 1
mov dword [esp + 0xc], eax
call sym._snprintf_4
mov dword [esp + 8], 0
mov dword [esp + 4], ebx
mov dword [esp], 1
call sym.__applog
jmp 0x435f84
movzx ecx, word [esp + 0xa4]
movzx edx, word [esp + 0xa2]
jmp 0x436128
lea eax, [esp + 0xad]
mov dword [esp + 0xc], 0x100
mov dword [esp + 8], eax
movzx eax, byte [esp + 0xa8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x90]
mov dword [esp], eax
call sym._libusb_get_string_descriptor_ascii_16
sub esp, 0x10
test eax, eax
mov esi, eax
js 0x436add
lea eax, [esp + 0x1ae]
mov dword [esp + 0xc], 0x100
mov dword [esp + 8], eax
movzx eax, byte [esp + 0xa9]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x90]
mov dword [esp], eax
call sym._libusb_get_string_descriptor_ascii_16
sub esp, 0x10
test eax, eax
mov esi, eax
js 0x436aa6
mov esi, dword [esp + 0xdd0]
test esi, esi
jne 0x4364c3
mov eax, dword [esp + 0x90]
mov dword [esp], eax
call sym._libusb_close_4
sub esp, 4
lea eax, [esp + 0x1ae]
mov ebx, dword [esp + 0x68]
mov dword [esp + 8], str._n__Manufacturer:__s_n__Product:__s
mov dword [esp + 4], 0x200
mov dword [esp + 0x10], eax
lea eax, [esp + 0xad]
mov dword [esp], ebx
mov dword [esp + 0xc], eax
call sym._snprintf_4
lea eax, [esp + 0x88]
lea ecx, [esp + 0x8c]
mov edx, ebx
mov dword [esp], eax
lea eax, [esp + 0x84]
call sym._append
jmp 0x436205
movzx eax, byte [esp + 0x9b]
call sym._destype
mov ebp, eax
movzx eax, byte [esp + 0xab]
mov dword [esp + 8], str._n.USB_dev__d:_Bus__d_Device__d_Device_Descriptor:_n_tLength:__d_n_tDescriptor_Type:__s_n_tUSB:__04x_n_tDeviceClass:__d_n_tDeviceSubClass:__d_n_tDeviceProtocol:__d_n_tMaxPacketSize0:__d_n_tidVendor:__04x_n_tidProduct:__04x_n_tDeviceRelease:__x_n_tNumConfigurations:__d
mov dword [esp + 4], 0x200
mov dword [esp + 0x38], ecx
mov dword [esp + 0x34], edx
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x40], eax
movzx eax, word [esp + 0xa6]
mov dword [esp + 0x3c], eax
movzx eax, byte [esp + 0xa1]
mov dword [esp + 0x30], eax
movzx eax, byte [esp + 0xa0]
mov dword [esp + 0x2c], eax
movzx eax, byte [esp + 0x9f]
mov dword [esp + 0x28], eax
movzx eax, byte [esp + 0x9e]
mov dword [esp + 0x24], eax
movzx eax, word [esp + 0x9c]
mov dword [esp + 0x20], eax
movzx eax, byte [esp + 0x9a]
mov dword [esp + 0x18], eax
mov eax, esi
movzx esi, al
mov eax, edi
movzx edi, al
mov eax, dword [esp + 0x64]
mov dword [esp + 0x14], esi
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], eax
lea eax, [esp + 0x3b0]
mov dword [esp], eax
mov dword [esp + 0x68], eax
call sym._snprintf_4
jmp 0x436181
add dword [esp + 0x64], 1
mov dword [esp + 0x10], eax
mov ebx, dword [esp + 0x64]
mov dword [esp + 8], str._n.USB_dev__d:_Failed_to_get_descriptor__err__d
mov dword [esp + 4], 0x200
mov dword [esp + 0xc], ebx
lea ebx, [esp + 0x3b0]
mov dword [esp], ebx
call sym._snprintf_4
jmp 0x4363ad
mov eax, dword [esp + 0x90]
mov dword [esp + 4], 0
mov dword [esp], eax
call sym._libusb_kernel_driver_active_8
sub esp, 8
cmp eax, 1
je 0x436b44
lea esi, [esp + 0x94]
mov dword [esp], ebx
mov dword [esp + 4], esi
call sym._libusb_get_active_config_descriptor_8
sub esp, 8
test eax, eax
jne 0x436963
mov edx, dword [esp + 0x94]
movzx eax, byte [edx + 1]
call sym._destype
movzx ecx, byte [edx + 8]
mov edi, dword [esp + 0x68]
mov dword [esp + 0x20], ecx
movzx ecx, byte [edx + 7]
mov dword [esp + 0x1c], ecx
movzx ecx, byte [edx + 6]
mov dword [esp + 0x18], ecx
movzx edx, byte [edx + 4]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 8], str._n_____dev__d:_Active_Config:_n_tDescriptorType:__s_n_tNumInterfaces:__d_n_tConfigurationValue:__d_n_tAttributes:__d_n_tMaxPower:__d
mov dword [esp + 4], 0x200
mov dword [esp], edi
mov dword [esp + 0x14], edx
mov dword [esp + 0xc], eax
call sym._snprintf_4
lea eax, [esp + 0x88]
lea ecx, [esp + 0x8c]
mov edx, edi
mov dword [esp], eax
lea eax, [esp + 0x84]
call sym._append
mov eax, dword [esp + 0x94]
mov dword [esp + 0x74], 0
cmp byte [eax + 4], 0
je 0x4367f5
mov edi, dword [esp + 0x74]
mov edx, dword [eax + 0xc]
mov dword [esp + 0x6c], 0
lea ebx, [edi*8]
add edx, ebx
mov dword [esp + 0x70], ebx
mov ecx, dword [edx + 4]
test ecx, ecx
jle 0x4367e0
nop
lea esi, [esi]
mov ebx, dword [esp + 0x6c]
mov edx, dword [edx]
xor ebp, ebp
xor edi, edi
lea eax, [ebx + ebx*2]
lea esi, [edx + eax*8]
movzx eax, byte [esi + 1]
call sym._destype
movzx edx, byte [esi + 7]
mov dword [esp + 0x28], edx
movzx edx, byte [esi + 6]
mov dword [esp + 0x24], edx
movzx edx, byte [esi + 5]
mov dword [esp + 0x20], edx
movzx edx, byte [esi + 4]
mov dword [esp + 0x1c], edx
movzx edx, byte [esi + 2]
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], ebx
mov eax, dword [esp + 0x64]
mov ebx, dword [esp + 0x68]
mov dword [esp + 8], str._n______dev__d:_Interface_Descriptor__d:_n_tDescriptorType:__s_n_tInterfaceNumber:__d_n_tNumEndpoints:__d_n_tInterfaceClass:__d_n_tInterfaceSubClass:__d_n_tInterfaceProtocol:__d
mov dword [esp + 4], 0x200
mov dword [esp + 0x18], edx
mov dword [esp], ebx
mov dword [esp + 0xc], eax
call sym._snprintf_4
lea eax, [esp + 0x88]
lea ecx, [esp + 0x8c]
mov edx, ebx
mov ebx, ebp
mov dword [esp], eax
lea eax, [esp + 0x84]
call sym._append
cmp byte [esi + 4], 0
jne 0x43671b
jmp 0x4367c0
movzx edx, byte [ebp + 2]
mov eax, edx
mov dword [esp + 0x60], edx
mov edx, str.Out:
and eax, 0x80
je 0x436685
cmp al, 0x80
mov edx, str.In:
mov eax, 0x5ce4ed
cmovne edx, eax
movzx eax, byte [ebp + 1]
add ebx, 0x14
call sym._destype
mov ebp, dword [esp + 0x54]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], eax
add edi, 1
mov dword [esp + 0x30], ebp
mov ebp, dword [esp + 0x58]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x2c], ebp
mov ebp, dword [esp + 0x5c]
mov dword [esp + 0x28], ebp
movzx eax, byte [esi + 2]
mov ebp, dword [esp + 0x68]
mov dword [esp + 8], str._n_______dev__d:_Interface__d_Endpoint__d:_n_tDescriptorType:__s_n_tEndpointAddress:__s0x_x_n_tAttributes:__s_n_tMaxPacketSize:__d_n_tInterval:__d_n_tRefresh:__d
mov dword [esp + 4], 0x200
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x64]
mov dword [esp], ebp
mov dword [esp + 0xc], eax
call sym._snprintf_4
lea eax, [esp + 0x88]
lea ecx, [esp + 0x8c]
mov edx, ebp
mov dword [esp], eax
lea eax, [esp + 0x84]
call sym._append
movzx eax, byte [esi + 4]
cmp edi, eax
jge 0x4367c0
mov ebp, dword [esi + 0xc]
mov ecx, str.Bulk
add ebp, ebx
movzx eax, byte [ebp + 7]
movzx edx, byte [ebp + 3]
mov dword [esp + 0x54], eax
movzx eax, byte [ebp + 6]
mov dword [esp + 0x58], eax
movzx eax, word [ebp + 4]
mov dword [esp + 0x5c], eax
mov eax, edx
and eax, 3
cmp al, 2
je 0x436660
cmp al, 3
mov ecx, str.Interrupt
je 0x436660
cmp al, 1
mov ecx, str.Control
jne 0x436660
mov eax, edx
and eax, 0xc
cmp al, 1
je 0x436932
jb 0x436901
cmp al, 2
je 0x4368d0
cmp al, 3
jne 0x4368c0
and edx, 0x30
mov ecx, str.IsochronousSyncFeedback
cmp dl, 1
je 0x436660
mov ecx, str.IsochronousSyncData
jb 0x436660
cmp dl, 2
mov eax, str.IsochronousSync_
mov ecx, str.IsochronousSyncImplicit
cmovne ecx, eax
jmp 0x436660
mov eax, dword [esp + 0x94]
mov edx, dword [esp + 0x70]
add dword [esp + 0x6c], 1
mov ebx, dword [esp + 0x6c]
add edx, dword [eax + 0xc]
cmp ebx, dword [edx + 4]
jl 0x4365c0
add dword [esp + 0x74], 1
movzx edx, byte [eax + 4]
mov ebx, dword [esp + 0x74]
cmp ebx, edx
jl 0x436594
mov dword [esp], eax
call sym._libusb_free_config_descriptor_4
sub esp, 4
movzx eax, byte [esp + 0xaa]
lea ebx, [esp + 0x2af]
mov dword [esp + 0xc], 0x100
mov dword [esp + 0x94], 0
mov dword [esp + 8], ebx
mov dword [esp + 4], eax
mov eax, dword [esp + 0x90]
mov dword [esp], eax
call sym._libusb_get_string_descriptor_ascii_16
sub esp, 0x10
test eax, eax
mov esi, eax
js 0x436b14
lea eax, [esp + 0x1ae]
mov dword [esp + 0x18], ebx
mov ebx, dword [esp + 0x68]
mov dword [esp + 8], str._n_____dev__d:_More_Info:_n_tManufacturer:__s_n_tProduct:__s_n_tSerial__s
mov dword [esp + 4], 0x200
mov dword [esp + 0x14], eax
lea eax, [esp + 0xad]
mov dword [esp], ebx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0xc], eax
call sym._snprintf_4
lea eax, [esp + 0x88]
lea ecx, [esp + 0x8c]
mov edx, ebx
mov dword [esp], eax
lea eax, [esp + 0x84]
call sym._append
mov eax, dword [esp + 0x90]
mov dword [esp], eax
call sym._libusb_close_4
sub esp, 4
jmp 0x436205
mov ecx, str.Isochronous_
jmp 0x436660
and edx, 0x30
mov ecx, str.IsochronousAdaptiveFeedback
cmp dl, 1
je 0x436660
mov ecx, str.IsochronousAdaptiveData
jb 0x436660
cmp dl, 2
mov eax, str.IsochronousAdaptive_
mov ecx, str.IsochronousAdaptiveImplicit
cmovne ecx, eax
jmp 0x436660
and edx, 0x30
mov ecx, str.IsochronousNoneFeedback
cmp dl, 1
je 0x436660
mov ecx, str.IsochronousNoneData
jb 0x436660
cmp dl, 2
mov eax, str.IsochronousNone_
mov ecx, str.IsochronousNoneImplicit
cmovne ecx, eax
jmp 0x436660
and edx, 0x30
mov ecx, str.IsochronousAsyncFeedback
cmp dl, 1
je 0x436660
mov ecx, str.IsochronousAsyncData
jb 0x436660
cmp dl, 2
mov ecx, str.IsochronousAsync_
mov eax, str.IsochronousAsyncImplicit
cmove ecx, eax
jmp 0x436660
lea eax, [esp + 0x88]
mov ecx, dword [esp + 0x90]
mov dword [esp + 4], 1
mov dword [esp], esi
mov edx, ebx
mov dword [esp + 0x10], eax
lea eax, [esp + 0x8c]
mov dword [esp + 0xc], eax
lea eax, [esp + 0x84]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x64]
call sym._setgetdes
test al, al
jne 0x436504
lea eax, [esp + 0x88]
mov ecx, dword [esp + 0x90]
mov dword [esp + 4], 0
mov dword [esp], esi
mov edx, ebx
mov dword [esp + 0x10], eax
lea eax, [esp + 0x8c]
mov dword [esp + 0xc], eax
lea eax, [esp + 0x84]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x64]
call sym._setgetdes
test al, al
jne 0x436504
mov eax, dword [esp + 0x90]
mov dword [esp], eax
call sym._libusb_close_4
sub esp, 4
mov eax, dword [esp + 0x64]
mov ebx, dword [esp + 0x68]
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 1
mov dword [esp + 8], str._n___dev__d:_Failed_to_set_config_descriptor_to__d_or__d
mov dword [esp + 4], 0x200
mov dword [esp + 0xc], eax
mov dword [esp], ebx
call sym._snprintf_4
jmp 0x4363ad
mov eax, dword [0x5bc2e0]
test eax, eax
jns 0x435fbf
jmp 0x435f9e
lea eax, [esp + 0x88]
lea ecx, [esp + 0x8c]
mov edx, str.___listing_known_devices
mov dword [esp], eax
lea eax, [esp + 0x84]
call sym._append
jmp 0x436079
cmp byte [0x745ef7], 0
jne 0x436a99
cmp byte [0x732fa0], 0
jne 0x436a99
mov edx, dword [0x5bc2e0]
test edx, edx
jle 0x435f84
mov dword [esp + 8], str.No_known_USB_devices
jmp 0x435f55
mov dword [esp], eax
call sym._libusb_error_name_4
sub esp, 4
mov dword [esp + 0x10], eax
lea eax, [esp + 0x1ae]
mov dword [esp + 0xc], esi
mov dword [esp + 8], str._err:__d___s
mov dword [esp + 4], 0x101
mov dword [esp], eax
call sym._snprintf_4
jmp 0x43635a
mov dword [esp], eax
call sym._libusb_error_name_4
sub esp, 4
mov dword [esp + 0x10], eax
lea eax, [esp + 0xad]
mov dword [esp + 0xc], esi
mov dword [esp + 8], str._err:__d___s
mov dword [esp + 4], 0x101
mov dword [esp], eax
call sym._snprintf_4
jmp 0x43631f
mov dword [esp], eax
call sym._libusb_error_name_4
sub esp, 4
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], esi
mov dword [esp + 8], str._err:__d___s
mov dword [esp + 4], 0x101
mov dword [esp], ebx
call sym._snprintf_4
jmp 0x436846
mov edi, dword [esp + 0x68]
mov eax, dword [esp + 0x64]
mov dword [esp + 8], str._n____dev__d:_kernel_attached
mov dword [esp + 4], 0x200
mov dword [esp + 0xc], eax
mov dword [esp], edi
call sym._snprintf_4
lea eax, [esp + 0x88]
lea ecx, [esp + 0x8c]
mov edx, edi
mov dword [esp], eax
lea eax, [esp + 0x84]
call sym._append
jmp 0x4364e6
lea ebx, [esp + 0x3b0]
mov dword [esp + 8], str.USB_failed_to_malloc_buf_in_usb_all
mov dword [esp + 4], 0xa00
mov dword [esp], ebx
call sym._snprintf_4
mov dword [esp + 8], 1
mov dword [esp + 4], ebx
mov dword [esp], 0
call sym.__applog
mov dword [esp], 1
call sym.__quit
mov eax, dword [esp + 0x84]
jmp 0x43603e