Function at 0x438fa0
Capabilities:
Reference sql statements

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x1c8
mov rax, qword [0x004e1890]
lea r13, [rsp + 0xa0]
mov esi, ecx
mov ebp, edx
mov qword [rsp + 0x220], r8
mov qword [rsp + 0x228], r9
cmp byte [rax], 1
mov rcx, r13
mov qword [rsp + 0xa0], 0
seta r12b
call fcn.00435120
test al, al
mov ebx, eax
jne 0x439030
test r12b, r12b
jne 0x4390e4
mov rcx, qword [rsp + 0xa0]
test rcx, rcx
je 0x439013
mov rax, qword [rcx]
call qword [rax + 0x10]
mov eax, ebx
add rsp, 0x1c8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
lea rax, [rsp + 0x110]
xor edx, edx
xor ecx, ecx
mov r8, rax
mov qword [rsp + 0x30], rax
call fcn.00484be0
cmp ebp, 0x19
mov qword [rsp + 0xb0], rax
mov qword [rsp + 0xc0], 0
jbe 0x439100
test esi, esi
js 0x4390f5
lea r15, [rsp + 0xc0]
lea r8, str.SELECT_Model_FROM_Win32_DiskDrive_WHERE_DeviceID_.PHYSICALDRIVE_d_
mov r9d, esi
mov rcx, r13
mov rdx, r15
call fcn.00435500
test al, al
mov ebx, eax
jne 0x4391e0
mov rcx, qword [rsp + 0xc0]
test rcx, rcx
je 0x4390a8
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rax, qword [rsp + 0xb0]
mov rdx, qword [0x004e0f00]
mov ecx, dword [rdx]
test ecx, ecx
jne 0x439130
mov edx, dword [rax - 8]
lea ecx, [rdx - 1]
mov dword [rax - 8], ecx
test edx, edx
jg 0x439000
lea rdx, [rsp + 0x160]
lea rcx, [rax - 0x18]
call fcn.00485060
jmp 0x439000
lea rcx, str.WMI_connect_failed_n
call fcn.00405e40
jmp 0x439000
xor ebx, ebx
jmp 0x4390b0
lea r15, [rsp + 0xc0]
add ebp, 0x41
lea r8, str.ASSOCIATORS_OF_Win32_LogicalDisk.DeviceID__c:__WHERE_ResultClass__Win32_DiskPartition
mov r9d, ebp
mov rcx, r13
mov rdx, r15
call fcn.00435500
test al, al
jne 0x439140
xor ebx, ebx
jmp 0x439095
mov edx, 0xffffffff
lock xadd dword [rax - 8], edx
jmp 0x4390c6
lea rcx, [rsp + 0x170]
lea r8, str.DeviceID
mov rdx, r15
call fcn.00434fc0
test r12b, r12b
je 0x439172
mov r8, qword [rsp + 0x170]
lea rcx, str._c:_______s______n
mov edx, ebp
call fcn.00405e40
mov r9, qword [rsp + 0x170]
lea r8, str.ASSOCIATORS_OF_Win32_DiskPartition.DeviceID__s__WHERE_ResultClass__Win32_DiskDrive
mov rdx, r15
mov rcx, r13
call fcn.00435500
test al, al
jne 0x439910
mov rax, qword [0x004e0f00]
mov rcx, qword [rsp + 0x170]
mov ebx, dword [rax]
test ebx, ebx
jne 0x439c1a
mov eax, dword [rcx - 8]
lea edx, [rax - 1]
mov dword [rcx - 8], edx
test eax, eax
jg 0x439124
lea rdx, [rsp + 0x160]
sub rcx, 0x18
xor ebx, ebx
call fcn.00485060
jmp 0x439095
lea rbx, [rsp + 0x140]
lea r8, str.Model
mov rdx, r15
mov rcx, rbx
call fcn.00434fc0
lea rcx, [rsp + 0xb0]
mov rdx, rbx
call fcn.00485900
mov r14, qword [0x004e0f00]
mov rcx, qword [rsp + 0x140]
mov r8d, dword [r14]
test r8d, r8d
jne 0x439a2a
mov eax, dword [rcx - 8]
lea edx, [rax - 1]
mov dword [rcx - 8], edx
test eax, eax
jle 0x439a40
test r12b, r12b
jne 0x439a0f
lea rax, [rsp + 0xd0]
lea r8, str.SELECT_Antecedent_Dependent_FROM_Win32_USBControllerDevice
mov rcx, r13
mov qword [rsp + 0xd0], 0
mov rdx, rax
mov qword [rsp + 0x48], rax
call fcn.004354e0
test al, al
mov ebx, eax
jne 0x439290
mov rcx, qword [rsp + 0xd0]
test rcx, rcx
je 0x439095
mov rax, qword [rcx]
call qword [rax + 0x10]
jmp 0x439095
xor eax, eax
xor edx, edx
xor ecx, ecx
mov word [rsp + 0x9c], ax
lea rax, [rsp + 0x100]
mov word [rsp + 0x9e], dx
xor edx, edx
mov r8, rax
mov qword [rsp + 0x40], rax
call fcn.00484be0
lea r8, [rsp + 0x9b]
xor edx, edx
xor ecx, ecx
mov qword [rsp + 0xe0], rax
call fcn.00484be0
lea r8, [rsp + 0x9a]
xor edx, edx
xor ecx, ecx
mov qword [rsp + 0xf0], rax
call fcn.00484be0
lea r8, [rsp + 0x99]
xor edx, edx
xor ecx, ecx
mov qword [rsp + 0x100], rax
call fcn.00484be0
mov qword [rsp + 0x110], rax
lea rax, [rsp + 0x170]
lea rdx, str..PnPEntity.DeviceID_______
mov r9d, 1
mov r8d, 1
mov rcx, rax
mov qword [rsp + 0x50], rax
call fcn.00427350
lea rax, [rsp + 0xf0]
xor esi, esi
xor edi, edi
mov word [rsp + 0x86], si
mov word [rsp + 0x84], di
mov qword [rsp + 0x60], rax
lea rax, [rsp + 0x130]
mov qword [rsp + 0x38], rax
lea rax, [rsp + 0x120]
mov qword [rsp + 0x58], rax
lea rax, [rsp + 0x150]
mov qword [rsp + 0x68], rax
lea rax, [rsp + 0x140]
mov qword [rsp + 0x70], rax
lea rax, [rsp + 0x9e]
mov qword [rsp + 0x78], rax
nop word [rax + rax]
mov rcx, qword [rsp + 0x48]
mov rdx, r15
lea rbp, [rsp + 0x160]
call fcn.004350a0
test al, al
je 0x439823
mov rsi, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x60]
lea rbp, [rsp + 0x160]
mov rdx, rsi
call fcn.00485900
mov rdi, qword [rsp + 0x38]
lea r8, str.Antecedent
mov rdx, r15
lea rbp, [rsp + 0x160]
mov rcx, rdi
call fcn.00434fc0
mov rdx, rdi
mov rcx, rsi
call fcn.00485900
mov eax, dword [r14]
mov rcx, qword [rsp + 0x130]
test eax, eax
jne 0x4395d5
mov eax, dword [rcx - 8]
lea rbp, [rsp + 0x160]
lea edx, [rax - 1]
test eax, eax
mov dword [rcx - 8], edx
jle 0x4395ef
mov rdi, qword [rsp + 0x58]
lea r8, str.Dependent
mov rdx, r15
mov rcx, rdi
call fcn.00434fc0
mov rcx, qword [rsp + 0x30]
mov rdx, rdi
call fcn.00485900
mov eax, dword [r14]
mov rcx, qword [rsp + 0x120]
test eax, eax
jne 0x4395b2
mov eax, dword [rcx - 8]
lea edx, [rax - 1]
test eax, eax
mov dword [rcx - 8], edx
jle 0x4395c4
test r12b, r12b
je 0x4394a7
mov rsi, qword [rsp + 0x100]
mov rdx, qword [rsp + 0xf0]
mov r8, qword [rsi - 0x18]
cmp r8, qword [rdx - 0x18]
je 0x439691
lea rcx, str.__s:_n
mov rdx, rsi
call fcn.00405e40
mov rax, qword [rsp + 0x50]
mov rdx, qword [rsp + 0x110]
mov r9, rbp
mov dword [rsp + 0x20], 0
mov r8d, 2
lea rcx, [rax + 0x10]
call fcn.00434cb0
test eax, eax
jne 0x439590
movsxd rdx, dword [rsp + 0x168]
test edx, edx
js 0x439590
mov r8d, dword [rsp + 0x16c]
mov r9, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x38]
sub r8d, edx
add rdx, qword [rsp + 0x110]
movsxd r8, r8d
call fcn.004865f0
mov rax, qword [rsp + 0x130]
lea rdi, str.USBVID_
mov ecx, 9
mov rsi, rax
repe cmpsb byte [rsi], byte [rdi]
je 0x4396b0
lea rdi, str.USBSTOR_
mov ecx, 9
mov rsi, rax
repe cmpsb byte [rsi], byte [rdi]
je 0x439600
lea rdi, str.SCSI_
mov ecx, 6
mov rsi, rax
repe cmpsb byte [rsi], byte [rdi]
je 0x439600
test r12b, r12b
jne 0x4397c4
mov ebp, dword [r14]
test ebp, ebp
jne 0x439730
mov edx, dword [rax - 8]
lea ecx, [rdx - 1]
mov dword [rax - 8], ecx
test edx, edx
jg 0x4393a0
mov rdx, qword [rsp + 0x68]
lea rcx, [rax - 0x18]
call fcn.00485060
jmp 0x4393a0
test r12b, r12b
je 0x4393a0
mov rdx, qword [rsp + 0x110]
lea rcx, str.______s___n
call fcn.00405e40
jmp 0x4393a0
mov eax, 0xffffffff
lock xadd dword [rcx - 8], eax
test eax, eax
jg 0x439475
sub rcx, 0x18
mov rdx, rbp
call fcn.00485060
jmp 0x439475
mov eax, 0xffffffff
lock xadd dword [rcx - 8], eax
test eax, eax
lea rbp, [rsp + 0x160]
jg 0x43942d
sub rcx, 0x18
mov rdx, rbp
call fcn.00485060
jmp 0x43942d
test r12b, r12b
je 0x43961c
lea rcx, str.________s__n
mov rdx, rax
call fcn.00405e40
mov rax, qword [rsp + 0x130]
mov rdx, qword [rsp + 0x70]
lea r8, str.SELECT_Name_FROM_Win32_PnPEntity_WHERE_DeviceID__s_
mov r9, rax
mov rcx, r13
mov qword [rsp + 0x140], 0
call fcn.00435500
test al, al
jne 0x439740
mov rcx, qword [rsp + 0x140]
test rcx, rcx
je 0x43965a
mov rax, qword [rcx]
call qword [rax + 0x10]
mov eax, dword [r14]
mov rdx, qword [rsp + 0x130]
test eax, eax
jne 0x439a00
mov eax, dword [rdx - 8]
lea ecx, [rax - 1]
mov dword [rdx - 8], ecx
test eax, eax
jg 0x4393a0
lea rcx, [rdx - 0x18]
mov rdx, qword [rsp + 0x68]
call fcn.00485060
jmp 0x4393a0
mov rcx, rsi
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x439498
jmp 0x4394a7
mov rdi, qword [rsp + 0x68]
mov r9, qword [rsp + 0x78]
lea r8, [rsp + 0x9c]
lea rdx, str.USBVID__4hxPID__4hx_n
mov rcx, rax
mov dword [rsp + 0x150], 0xffffffff
mov qword [rsp + 0x20], rdi
call fcn.0045e7c0
cmp eax, 2
je 0x439810
xor eax, eax
xor edx, edx
mov word [rsp + 0x9e], ax
mov word [rsp + 0x9c], dx
mov rdx, qword [rsp + 0x40]
lea rcx, [rsp + 0xe0]
call fcn.00485900
test r12b, r12b
jne 0x4397e0
mov rax, qword [rsp + 0x130]
jmp 0x439561
mov edx, 0xffffffff
lock xadd dword [rax - 8], edx
jmp 0x439575
mov rdx, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x68]
lea r8, str.Name
call fcn.00434fc0
mov rdi, qword [rsp + 0x150]
mov rdx, qword [rsp + 0xb0]
mov r8, qword [rdi - 0x18]
cmp r8, qword [rdx - 0x18]
mov r9, rdi
je 0x439a56
test r12b, r12b
je 0x439793
lea rcx, str.__________s___n
mov rdx, rdi
call fcn.00405e40
mov r9, qword [rsp + 0x150]
mov eax, dword [r14]
test eax, eax
jne 0x439c81
mov eax, dword [r9 - 8]
lea edx, [rax - 1]
mov dword [r9 - 8], edx
test eax, eax
jg 0x439647
mov rdx, qword [rsp + 0x58]
lea rcx, [r9 - 0x18]
call fcn.00485060
jmp 0x439647
lea rcx, str._______s__n
mov rdx, rax
call fcn.00405e40
jmp 0x439719
movzx r9d, word [rsp + 0x9e]
movzx r8d, word [rsp + 0x9c]
lea rcx, str._______s___0x_04x:0x_04x__n
mov rdx, qword [rsp + 0x130]
call fcn.00405e40
jmp 0x439719
cmp dword [rsp + 0x150], 0x16
jne 0x4396ea
jmp 0x4396fe
cmp word [rsp + 0x84], 0
je 0x439a39
movzx esi, word [rsp + 0x84]
mov rax, qword [rsp + 0x220]
mov word [rax], si
movzx esi, word [rsp + 0x86]
mov rax, qword [rsp + 0x228]
mov word [rax], si
mov rcx, qword [rsp + 0x50]
call fcn.00426610
mov r11d, dword [r14]
mov rcx, qword [rsp + 0x110]
test r11d, r11d
jne 0x439adb
mov eax, dword [rcx - 8]
lea edx, [rax - 1]
mov dword [rcx - 8], edx
test eax, eax
jle 0x439c55
mov r10d, dword [r14]
mov rcx, qword [rsp + 0x100]
test r10d, r10d
jne 0x439aea
mov eax, dword [rcx - 8]
lea edx, [rax - 1]
mov dword [rcx - 8], edx
test eax, eax
jle 0x439c3f
mov r9d, dword [r14]
mov rcx, qword [rsp + 0xf0]
test r9d, r9d
jne 0x439b08
mov eax, dword [rcx - 8]
lea edx, [rax - 1]
mov dword [rcx - 8], edx
test eax, eax
jle 0x439c29
mov r8d, dword [r14]
mov rcx, qword [rsp + 0xe0]
test r8d, r8d
jne 0x439af9
mov eax, dword [rcx - 8]
lea edx, [rax - 1]
mov dword [rcx - 8], edx
test eax, eax
jg 0x439270
lea rdx, [rsp + 0x160]
sub rcx, 0x18
call fcn.00485060
jmp 0x439270
lea rbp, [rsp + 0x160]
lea r8, str.Model
mov rdx, r15
mov rcx, rbp
call fcn.00434fc0
lea rcx, [rsp + 0xb0]
mov rdx, rbp
call fcn.00485900
mov r14, qword [0x004e0f00]
mov rcx, qword [rsp + 0x160]
mov r11d, dword [r14]
test r11d, r11d
jne 0x439c0b
mov eax, dword [rcx - 8]
lea edx, [rax - 1]
mov dword [rcx - 8], edx
test eax, eax
jle 0x439c6b
test r12b, r12b
je 0x4399c6
lea rcx, [rsp + 0x150]
lea r8, str.DeviceID
mov rdx, r15
mov rbx, qword [rsp + 0xb0]
call fcn.00434fc0
mov rdx, qword [rsp + 0x150]
lea rcx, str._s_______s_:_n
mov r8, rbx
call fcn.00405e40
mov r10d, dword [r14]
mov rdx, qword [rsp + 0x150]
test r10d, r10d
jne 0x439cb4
mov eax, dword [rdx - 8]
lea ecx, [rax - 1]
mov dword [rdx - 8], ecx
test eax, eax
jle 0x439cc3
mov r9d, dword [r14]
mov rdx, qword [rsp + 0x170]
test r9d, r9d
jne 0x439bfc
mov eax, dword [rdx - 8]
lea ecx, [rax - 1]
mov dword [rdx - 8], ecx
test eax, eax
jg 0x43923f
lea rcx, [rdx - 0x18]
mov rdx, rbp
call fcn.00485060
jmp 0x43923f
mov eax, 0xffffffff
lock xadd dword [rdx - 8], eax
jmp 0x439676
mov r8, qword [rsp + 0xb0]
lea rcx, str..PHYSICALDRIVE_d_______s_:_n
mov edx, esi
call fcn.00405e40
jmp 0x43923f
mov eax, 0xffffffff
lock xadd dword [rcx - 8], eax
jmp 0x43922e
xor ebx, ebx
jmp 0x439858
lea rdx, [rsp + 0x170]
sub rcx, 0x18
call fcn.00485060
jmp 0x439236
mov rcx, rdi
mov qword [rsp + 0x88], rdi
call sub.msvcrt.dll_memcmp
test eax, eax
mov r9, qword [rsp + 0x88]
jne 0x439777
mov rcx, qword [rsp + 0x100]
mov rdx, qword [rsp + 0xe0]
mov r8, qword [rcx - 0x18]
cmp r8, qword [rdx - 0x18]
je 0x439b17
test r12b, r12b
jne 0x439cf9
mov rdx, qword [rsp + 0x58]
lea rcx, [rdi - 0x18]
call fcn.00485070
mov rcx, qword [rsp + 0x140]
test rcx, rcx
je 0x439abe
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rax, qword [rsp + 0x130]
mov rdx, qword [rsp + 0x68]
xor ebx, ebx
lea rcx, [rax - 0x18]
call fcn.00485070
jmp 0x439858
mov eax, 0xffffffff
lock xadd dword [rcx - 8], eax
jmp 0x43987f
mov eax, 0xffffffff
lock xadd dword [rcx - 8], eax
jmp 0x4398a4
mov eax, 0xffffffff
lock xadd dword [rcx - 8], eax
jmp 0x4398ee
mov eax, 0xffffffff
lock xadd dword [rcx - 8], eax
jmp 0x4398c9
mov qword [rsp + 0x88], r9
call sub.msvcrt.dll_memcmp
test eax, eax
mov r9, qword [rsp + 0x88]
jne 0x439a94
movzx esi, word [rsp + 0x9c]
test si, si
je 0x439a94
cmp word [rsp + 0x84], 0
je 0x439be7
cmp si, word [rsp + 0x84]
jne 0x439cd4
movzx eax, word [rsp + 0x86]
cmp word [rsp + 0x9e], ax
jne 0x439cd4
test r12b, r12b
je 0x439ba1
movzx r9d, word [rsp + 0x86]
lea rcx, str.______s___0x_04x:0x_04x__n
movzx r8d, si
mov rdx, rdi
call fcn.00405e40
mov r9, qword [rsp + 0x150]
mov eax, dword [r14]
test eax, eax
jne 0x439c91
mov eax, dword [r9 - 8]
lea edx, [rax - 1]
mov dword [r9 - 8], edx
test eax, eax
jle 0x439ca1
mov rcx, qword [rsp + 0x140]
test rcx, rcx
je 0x439bd2
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rax, qword [rsp + 0x130]
mov word [rsp + 0x84], si
jmp 0x439561
movzx eax, word [rsp + 0x9e]
mov word [rsp + 0x86], ax
jmp 0x439b78
mov eax, 0xffffffff
lock xadd dword [rdx - 8], eax
jmp 0x4399e3
mov eax, 0xffffffff
lock xadd dword [rcx - 8], eax
jmp 0x43995e
mov eax, 0xffffffff
lock xadd dword [rcx - 8], eax
jmp 0x4391b6
lea rdx, [rsp + 0x160]
sub rcx, 0x18
call fcn.00485060
jmp 0x4398d1
lea rdx, [rsp + 0x160]
sub rcx, 0x18
call fcn.00485060
jmp 0x4398ac
lea rdx, [rsp + 0x160]
sub rcx, 0x18
call fcn.00485060
jmp 0x439887
lea rdx, [rsp + 0x150]
sub rcx, 0x18
call fcn.00485060
jmp 0x439966
mov eax, 0xffffffff
lock xadd dword [r9 - 8], eax
jmp 0x4397a9
mov eax, 0xffffffff
lock xadd dword [r9 - 8], eax
jmp 0x439bb7
mov rdx, qword [rsp + 0x58]
lea rcx, [r9 - 0x18]
call fcn.00485060
jmp 0x439bbf
mov eax, 0xffffffff
lock xadd dword [rdx - 8], eax
jmp 0x4399be
lea rcx, [rdx - 0x18]
mov rdx, rbp
call fcn.00485060
jmp 0x4399c6
test r12b, r12b
je 0x439a9d
lea rcx, str._________s___Error:_More_than_one_USB_ID_found__n
mov rdx, rdi
call fcn.00405e40
mov rdi, qword [rsp + 0x150]
jmp 0x439a9d
lea rcx, str._________s___Error:_No_USB_bridge_found__n
mov rdx, rdi
call fcn.00405e40
jmp 0x439cec