Function at 0x14013a4a0
Capabilities:
Register raw input devices

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x338
lea rbp, [rsp + 0x80]
movaps xmmword [rbp + 0x2a0], xmm6
and rsp, 0xffffffffffffff80
mov rbx, rcx
lea rdi, [rsp + 0x278]
mov rcx, rdi
call fcn.140160d80
movabs r13, 0x800000000000000c
cmp qword [rsp + 0x278], r13
jne 0x14013c75d
mov rsi, qword [rsp + 0x280]
xor eax, eax
cmp rax, qword [rbx + 0x18]
jno 0x14013a559
movzx r13d, byte [rbx + 0x60]
mov rax, qword [rbx]
mov rcx, rax
neg rcx
setno cl
or cl, r13b
je 0x14013b663
neg rax
jno 0x14013a721
mov qword [rsp + 0x80], 0
mov qword [rsp + 0x88], 1
mov qword [rsp + 0x90], 0
xor eax, eax
cmp rax, qword [rbx + 0x30]
jno 0x14013a7c7
jmp 0x14013a8dd
mov rax, qword [rbx + 0x20]
mov rcx, qword [rbx + 0x28]
add rcx, rax
xor edi, edi
cmp rdi, qword [rbx + 0x30]
mov r15, qword [rbx + 0x40]
cmovo r15, rdi
mov r14d, 1
mov r12, qword [rbx + 0x38]
cmovo r12, r14
cmp rdi, qword [rbx + 0x48]
jo 0x14013a58e
mov rdi, qword [rbx + 0x58]
mov r14, qword [rbx + 0x50]
mov qword [rsp + 0x100], rax
mov qword [rsp + 0x108], rcx
mov word [rsp + 0x110], 0
lea rcx, [rsp + 0x80]
lea rdx, [rsp + 0x100]
call case.0x1402842e8.1206
add r15, r12
mov qword [rsp + 0x100], r12
mov qword [rsp + 0x108], r15
mov word [rsp + 0x110], 0
lea rcx, [rsp + 0xe0]
lea rdx, [rsp + 0x100]
call case.0x1402842e8.1206
add rdi, r14
mov qword [rsp + 0x100], r14
mov qword [rsp + 0x108], rdi
mov word [rsp + 0x110], 0
lea rcx, [rsp + 0x240]
lea rdx, [rsp + 0x100]
call case.0x1402842e8.1206
lea rcx, [rsp + 0x100]
mov rdx, rsi
call fcn.140160110
mov rbx, qword [rsp + 0x100]
mov rsi, qword [rsp + 0x108]
cmp rbx, r13
jne 0x14013b6a7
mov qword [rsp + 0x2e8], rsi
mov r8, qword [rsp + 0x90]
mov rdx, r8
test r8, r8
je 0x14013a66a
mov rdx, qword [rsp + 0x88]
cmp r8, 0x7fff
ja 0x14013c7c9
mov rax, qword [rsp + 0xf0]
mov r9, rax
test rax, rax
je 0x14013a68f
mov r9, qword [rsp + 0xe8]
cmp rax, 0x7fff
ja 0x14013c7d2
mov rcx, qword [rsp + 0x250]
cmp rcx, 0x7fff
ja 0x14013c7db
test rcx, rcx
mov rdi, qword [rsp + 0x248]
mov r10, rdi
cmove r10, rcx
mov word [rsp + 0x30], cx
mov qword [rsp + 0x28], r10
mov word [rsp + 0x20], ax
mov rcx, rsi
call qword [sym.imp.odbc32.dll_SQLConnectW]
lea rdx, str.SQLConnect
mov qword [rsp + 0x2d8], rdx
mov qword [rsp + 0x2e0], 0xa
movzx ecx, ax
cmp ecx, 0x62
jg 0x14013a753
test ecx, ecx
je 0x14013b528
cmp ecx, 1
je 0x14013b515
cmp ecx, 2
jne 0x14013c960
mov ecx, 4
jmp 0x14013b528
mov r14, qword [rbx + 0x10]
test r14, r14
js 0x14013c807
mov r15, qword [rbx + 8]
je 0x14013a78f
movzx eax, byte [0x14042efe0]
xor ecx, ecx
mov rdx, r14
call fcn.14027d060
test rax, rax
je 0x14013c953
mov r12, rax
jmp 0x14013a795
cmp ecx, 0x63
je 0x14013b523
cmp ecx, 0x64
je 0x14013b51c
cmp ecx, 0xffff
jne 0x14013c960
mov qword [rsp + 0x280], rdx
mov qword [rsp + 0x288], 0xa
mov ecx, 5
jmp 0x14013b528
mov r12d, 1
mov rcx, r12
mov rdx, r15
mov r8, r14
call fcn.1403125c0
mov qword [rsp + 0x88], r12
mov qword [rsp + 0x90], r14
mov qword [rsp + 0x80], r14
xor eax, eax
cmp rax, qword [rbx + 0x30]
jo 0x14013a8dd
mov rdx, qword [rbx + 0x38]
mov r8, qword [rbx + 0x40]
lea r14, [rsp + 0x200]
mov rcx, r14
call fcn.1401622e0
mov qword [rsp + 0xa0], r14
lea rax, [rsp + 0x80]
mov qword [rsp + 0x278], rax
lea rax, [0x140003600]
mov qword [rsp + 0x280], rax
lea rax, [rsp + 0xa0]
mov qword [rsp + 0x288], rax
lea rax, case.0x140165ce0.76
mov qword [rsp + 0x290], rax
lea rax, [0x140371d50]
mov qword [rsp + 0x100], rax
mov qword [rsp + 0x108], 3
mov qword [rsp + 0x120], 0
mov qword [rsp + 0x110], rdi
mov qword [rsp + 0x118], 2
lea rcx, [rsp + 0x2f0]
lea rdx, [rsp + 0x100]
call fcn.14000ece0
mov rax, qword [rsp + 0x200]
neg rax
jo 0x14013a89b
jae 0x14013a89b
mov r8, qword [rsp + 0x208]
mov rcx, qword [0x14042ef38]
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapFree]
cmp qword [rsp + 0x80], 0
je 0x14013a8bd
mov r8, qword [rsp + 0x88]
mov rcx, qword [0x14042ef38]
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapFree]
mov rax, qword [rsp + 0x300]
mov qword [rsp + 0x90], rax
movups xmm0, xmmword [rsp + 0x2f0]
movaps xmmword [rsp + 0x80], xmm0
xor eax, eax
cmp rax, qword [rbx + 0x48]
jo 0x14013a9ff
mov rdx, qword [rbx + 0x50]
mov r8, qword [rbx + 0x58]
lea rbx, [rsp + 0x200]
mov rcx, rbx
call fcn.1401622e0
mov qword [rsp + 0xa0], rbx
lea rax, [rsp + 0x80]
mov qword [rsp + 0x278], rax
lea rax, [0x140003600]
mov qword [rsp + 0x280], rax
lea rax, [rsp + 0xa0]
mov qword [rsp + 0x288], rax
lea rax, case.0x140165ce0.76
mov qword [rsp + 0x290], rax
lea rax, [0x140371d88]
mov qword [rsp + 0x100], rax
mov qword [rsp + 0x108], 3
mov qword [rsp + 0x120], 0
mov qword [rsp + 0x110], rdi
mov qword [rsp + 0x118], 2
lea rcx, [rsp + 0x308]
lea rdx, [rsp + 0x100]
call fcn.14000ece0
mov rax, qword [rsp + 0x200]
neg rax
jo 0x14013a9bd
jae 0x14013a9bd
mov r8, qword [rsp + 0x208]
mov rcx, qword [0x14042ef38]
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapFree]
cmp qword [rsp + 0x80], 0
je 0x14013a9df
mov r8, qword [rsp + 0x88]
mov rcx, qword [0x14042ef38]
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapFree]
mov rax, qword [rsp + 0x318]
mov qword [rsp + 0x90], rax
movups xmm0, xmmword [rsp + 0x308]
movaps xmmword [rsp + 0x80], xmm0
lea eax, [r13*2]
mov qword [rsp + 0xe0], 0
mov qword [rsp + 0xe8], 2
mov qword [rsp + 0xf0], 0
mov word [rsp + 0xf8], 0
mov r8, qword [rsp + 0x88]
mov r9, qword [rsp + 0x90]
mov ecx, dword [rsp + 0x90]
mov ecx, 1
jmp 0x14013b528
mov ecx, 2
jmp 0x14013b528
mov ecx, 3
mov qword [rsp + 0x278], rcx
lea rcx, [rsp + 0x100]
lea rdx, [rsp + 0x278]
lea r8, [rsp + 0x2e8]
call fcn.140163360
mov rbx, qword [rsp + 0x100]
cmp rbx, r13
jne 0x14013b771
cmp qword [rsp + 0x240], 0
je 0x14013c31b
mov rcx, qword [0x14042ef38]
xor edx, edx
mov r8, rdi
call qword [sym.imp.kernel32.dll_HeapFree]
jmp 0x14013c31b
lea rax, str.Either_DSN__connection_string_or_prompt_must_be_specified.
mov qword [rsp + 0x100], rax
mov qword [rsp + 0x108], 1
mov qword [rsp + 0x110], 8
xorps xmm0, xmm0
movups xmmword [rsp + 0x118], xmm0
lea rcx, [rsp + 0x100]
call fcn.1403130d0
jmp 0x14013b764
mov rax, qword [rsp + 0x130]
mov qword [rsp + 0x220], rax
movups xmm0, xmmword [rsp + 0x110]
movups xmm1, xmmword [rsp + 0x120]
movaps xmmword [rsp + 0x210], xmm1
movaps xmmword [rsp + 0x200], xmm0
cmp qword [rsp + 0x240], 0
jne 0x14013b7c7
cmp qword [rsp + 0xe0], 0
jne 0x14013b7ed
cmp qword [rsp + 0x80], 0
je 0x14013b717
mov r8, qword [rsp + 0x88]
mov rcx, qword [0x14042ef38]
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapFree]
mov rax, qword [rsp + 0x220]
mov qword [rsp + 0x130], rax
movaps xmm0, xmmword [rsp + 0x200]
movaps xmm1, xmmword [rsp + 0x210]
movups xmmword [rsp + 0x120], xmm1
movups xmmword [rsp + 0x110], xmm0
mov qword [rsp + 0x100], rbx
mov qword [rsp + 0x108], rsi
lea rcx, [rsp + 0x100]
call fcn.140315ce0
mov rsi, rax
mov rdi, qword [rsp + 0x108]
movups xmm0, xmmword [rsp + 0x110]
movaps xmmword [rsp + 0x200], xmm0
movups xmm0, xmmword [rsp + 0x120]
movaps xmmword [rsp + 0x210], xmm0
mov rax, qword [rsp + 0x130]
mov qword [rsp + 0x220], rax
mov rcx, rsi
mov dx, 2
call fcn.140164460
mov rsi, rdi
cmp qword [rsp + 0x240], 0
je 0x14013b6e6
mov r8, qword [rsp + 0x248]
mov rcx, qword [0x14042ef38]
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapFree]
cmp qword [rsp + 0xe0], 0
je 0x14013b6f5
mov r8, qword [rsp + 0xe8]
mov rcx, qword [0x14042ef38]
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapFree]
cmp qword [rsp + 0x80], 0
jne 0x14013b700
jmp 0x14013b717
lea rax, str.C:Users_runneradmin.cargo_registry_srcindex.crates.io_6f17d22bba15001fodbc_api_9.0.0_srchandlesconnection.rs
jmp 0x14013c7e2
lea rax, str.C:Users_runneradmin.cargo_registry_srcindex.crates.io_6f17d22bba15001fodbc_api_9.0.0_srchandlesconnection.rs