Function at 0x14000ec60
Capabilities:
Check if file exists

Disassembly:
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x37]
sub rsp, 0x100
mov rax, qword [0x140101140]
xor rax, rsp
mov qword [rbp + 0x2f], rax
mov r13, qword [rdx + 0x20]
or rax, 0xffffffffffffffff
mov r12, rax
mov qword [rbp - 0x61], rax
lea rax, str.input
mov r14, rdx
mov qword [rbp + 0x17], rax
xor edx, edx
cmp dword [0x140107e0c], edx
lea rax, str.output
mov r15, qword [r13 + 0x10]
mov qword [rbp + 0x1f], rax
lea rax, str.feature
mov qword [rbp + 0x27], rax
mov qword [rbp - 0x71], r15
mov qword [rbp - 0x79], rdx
jne 0x14000ecd5
lea eax, [rdx - 3]
jmp 0x14000f23d
cmp qword [r13 + 0x584], rdx
jne 0x14000ed03
lea r9, str.program_assertion_failed___private_HID_structure_is_unitialized
mov edx, 1
lea r8, [0x1400e1590]
mov rcx, r15
call fcn.140003000
mov eax, 0xfffffffb
jmp 0x14000f23d
mov qword [rsp + 0x130], rbx
lea rbx, [r13 + 0x84]
mov qword [rsp + 0x140], rsi
mov esi, edx
mov qword [rsp + 0x148], rdi
mov rdi, rdx
nop word [rax + rax]
mov rcx, qword [rbx]
test rcx, rcx
je 0x14000eddd
mov rax, qword [rbx + 8]
cmp byte [rax], 4
jne 0x14000eddd
mov qword [rsp + 0x30], rdx
xor r9d, r9d
mov dword [rsp + 0x28], 0x40000080
mov edx, 0xc0000000
mov dword [rsp + 0x20], 3
lea r8d, [r9 + 3]
call qword [sym.imp.KERNEL32.dll_CreateFileA]
mov qword [rbp - 0x61], rax
mov r12, rax
cmp rax, 0xffffffffffffffff
jne 0x14000edd6
lea r9, str.could_not_open_HID_device_in_R_W_mode__keyboard_or_mouse_____trying_without
mov rcx, r15
lea r8, [0x1400e1590]
lea edx, [rax + 3]
call fcn.140003000
mov rcx, qword [rbx]
lea r8d, [r12 + 4]
mov qword [rsp + 0x30], 0
xor r9d, r9d
mov dword [rsp + 0x28], 0x40000080
xor edx, edx
mov dword [rsp + 0x20], 3
call qword [sym.imp.KERNEL32.dll_CreateFileA]
mov qword [rbp - 0x61], rax
mov r12, rax
cmp rax, 0xffffffffffffffff
je 0x14000ee18
mov dword [rbx + 0x20], 1
mov qword [rdi + r14 + 0x3c], r12
xor edx, edx
inc esi
add rbx, 0x28
add rdi, 0x10
cmp rdi, 0x200
jl 0x14000ed30
lea rdx, [rbp - 0x51]
mov dword [rbp - 0x51], 0xa
mov rcx, r12
call qword [0x140107e70]
test eax, eax
jne 0x14000ee7a
lea r9, str.could_not_gain_access_to_HID_top_collection__HidD_GetAttributes_
jmp 0x14000f200
xor ecx, ecx
call fcn.140010990
mov qword [rsp + 0x30], rax
lea r9, str.could_not_open_device__s__interface__d_:__s
mov rax, qword [r13 + 0x74]
lea r8, [0x1400e1590]
mov dword [rsp + 0x28], esi
mov edx, 1
mov rcx, r15
mov qword [rsp + 0x20], rax
call fcn.140003000
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
cmp eax, 2
je 0x14000ee70
cmp ecx, 5
mov eax, 0xfffffffd
mov rcx, 0xffffffffffffffff
cmovne eax, ecx
jmp 0x14000f225
mov eax, 0xfffffffc
jmp 0x14000f225
mov rcx, qword [r13 + 0x584]
mov ebx, 0x20
movzx eax, word [rbp - 0x4d]
mov edx, ebx
mov word [rcx], ax
mov rcx, qword [r13 + 0x584]
movzx eax, word [rbp - 0x4b]
mov word [rcx + 2], ax
mov rcx, r12
call qword [0x140107f18]
test eax, eax
je 0x14000eec1
nop dword [rax + rax]
add ebx, ebx
mov rcx, r12
mov edx, ebx
call qword [0x140107f18]
test eax, eax
jne 0x14000eeb0
mov eax, ebx
lea r9, str.set_maximum_input_buffer_size_to__d
cdq
lea r8, [0x1400e1590]
sub eax, edx
xor ecx, ecx
sar eax, 1
mov edx, 4
mov dword [rsp + 0x20], eax
call fcn.140003000
lea rdx, [rbp - 0x79]
mov rcx, r12
call qword [0x140107ec8]
test eax, eax
je 0x14000f1f9
mov rcx, qword [rbp - 0x79]
test rcx, rcx
je 0x14000f1f9
lea rdx, [rbp - 0x39]
call qword [0x140107ec0]
cmp eax, 0x110000
je 0x14000ef25
lea r9, str.could_not_parse_HID_capabilities__HidP_GetCaps_
jmp 0x14000f200
movzx eax, word [rbp - 9]
lea rcx, [rbp + 7]
mov r12, qword [rbp - 0x71]
lea r14, [rbp + 0x17]
mov dword [rbp + 7], eax
lea rbx, [rbp + 7]
movzx eax, word [rbp - 3]
lea r15, [rbp + 7]
mov dword [rbp + 0xb], eax
xor edi, edi
movzx eax, word [rbp + 3]
mov dword [rbp + 0xf], eax
mov eax, 8
sub rax, rcx
mov dword [rsp + 0x40], edi
mov qword [rbp - 0x59], rax
mov qword [rsp + 0x48], r14
mov qword [rbp - 0x69], rbx
nop dword [rax]
mov eax, dword [r15]
lea r9, str._u_HID__s_report_value_s__found
mov rsi, qword [r14]
lea r8, [0x1400e1590]
mov qword [rsp + 0x28], rsi
mov edx, 4
xor ecx, ecx
mov dword [rsp + 0x20], eax
call fcn.140003000
mov rax, qword [r13 + 0x584]
xor edx, edx
mov rcx, qword [rbp - 0x59]
add rcx, r15
mov dword [rcx + rax], edx
mov eax, dword [r15]
test eax, eax
je 0x14000f0d8
mov ecx, eax
mov edx, 0x48
call fcn.14008f864
mov qword [rbp - 0x71], rax
mov rbx, rax
test rax, rax
je 0x14000f096
mov r9, qword [rbp - 0x79]
mov rdx, rax
mov r8, qword [rbp - 0x69]
mov ecx, edi
call qword [0x140107ef8]
cmp eax, 0x110000
jne 0x14000f096
mov ecx, dword [r15]
cmp ecx, 1
jb 0x14000f096
xor eax, eax
mov r14d, eax
mov esi, eax
mov edi, eax
test ecx, ecx
jle 0x14000f0bc
add rbx, 2
movzx eax, byte [rbx]
lea r9, str.__Report_ID:_0x_02X
lea r8, [0x1400e1590]
mov dword [rsp + 0x20], eax
mov edx, 4
xor ecx, ecx
call fcn.140003000
cmp byte [rbx], 0
je 0x14000f03c
inc esi
jmp 0x14000f03f
inc r14d
inc edi
add rbx, 0x48
cmp edi, dword [r15]
jl 0x14000f012
test esi, esi
je 0x14000f0b8
test r14d, r14d
mov r14, qword [rsp + 0x48]
je 0x14000f07b
mov rax, qword [r14]
lea r9, str.program_assertion_failed:_zero_and_nonzero_report_IDs_used_for__s
lea r8, [0x1400e1590]
mov qword [rsp + 0x20], rax
mov edx, 2
mov rcx, r12
call fcn.140003000
mov rcx, qword [rbp - 0x59]
mov rax, qword [r13 + 0x584]
add rcx, r15
mov rbx, qword [rbp - 0x71]
mov dword [rcx + rax], 1
jmp 0x14000f0c1
lea r9, str.__could_not_process__s_report_IDs
mov qword [rsp + 0x20], rsi
lea r8, [0x1400e1590]
mov edx, 2
mov rcx, r12
call fcn.140003000
jmp 0x14000f0c5
mov rbx, qword [rbp - 0x71]
mov r14, qword [rsp + 0x48]
mov edi, dword [rsp + 0x40]
test rbx, rbx
je 0x14000f0d2
mov rcx, rbx
call fcn.14008f86c
mov rbx, qword [rbp - 0x69]
xor edx, edx
inc edi
add rbx, 4
add r14, 8
mov dword [rsp + 0x40], edi
add r15, 4
mov qword [rbp - 0x69], rbx
mov qword [rsp + 0x48], r14
cmp edi, 2
jle 0x14000ef70
movzx eax, word [rbp - 0x35]
mov rcx, qword [r13 + 0x584]
mov r12, qword [rbp - 0x61]
mov word [rcx + 0x14], ax
movzx eax, word [rbp - 0x33]
mov rcx, qword [r13 + 0x584]
mov word [rcx + 0x16], ax
movzx eax, word [rbp - 0x31]
mov rcx, qword [r13 + 0x584]
mov word [rcx + 0x18], ax
movzx eax, byte [r13 + 0x59a]
mov rcx, qword [r13 + 0x584]
mov byte [rcx + 0x31a], al
mov rax, qword [r13 + 0x584]
cmp byte [rax + 0x31a], 0
je 0x14000f169
lea rdx, [rax + 0x1a]
mov r8d, 0x100
mov rcx, r12
call qword [0x140107e88]
xor edx, edx
jmp 0x14000f16d
mov word [rax + 0x1a], dx
movzx eax, byte [r13 + 0x59b]
mov rcx, qword [r13 + 0x584]
mov byte [rcx + 0x31b], al
mov rax, qword [r13 + 0x584]
cmp byte [rax + 0x31b], 0
je 0x14000f1ac
lea rdx, [rax + 0x11a]
mov r8d, 0x100
mov rcx, r12
call qword [0x140107e38]
xor edx, edx
jmp 0x14000f1b3
mov word [rax + 0x11a], dx
movzx eax, byte [r13 + 0x59c]
mov rcx, qword [r13 + 0x584]
mov byte [rcx + 0x31c], al
mov rax, qword [r13 + 0x584]
cmp byte [rax + 0x31c], 0
je 0x14000f1f0
lea rdx, [rax + 0x21a]
mov r8d, 0x100
mov rcx, r12
call qword [0x140107f38]
jmp 0x14000f214
mov word [rax + 0x21a], dx
jmp 0x14000f214
lea r9, str.could_not_read_HID_preparsed_data__HidD_GetPreparsedData_
lea r8, [0x1400e1590]
mov edx, 1
mov rcx, r15
call fcn.140003000
mov rcx, qword [rbp - 0x79]
test rcx, rcx
je 0x14000f223
call qword [0x140107ed0]
xor eax, eax
mov rsi, qword [rsp + 0x140]
mov rbx, qword [rsp + 0x130]
mov rdi, qword [rsp + 0x148]
mov rcx, qword [rbp + 0x2f]
xor rcx, rsp
call fcn.140062030
add rsp, 0x100
pop r15
pop r14
pop r13
pop r12
pop rbp
ret