Function at 0x140003370
Capabilities:
Accept command line arguments
Identify system language via api

Disassembly:
mov qword [rsp + 8], rcx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x58]
sub rsp, 0x158
mov qword [rbp + 0x38], 0xfffffffffffffffe
mov r15, rcx
call fcn.140020384
call fcn.140024fb0
mov rcx, rax
xor r12d, r12d
mov edx, r12d
test rax, rax
setne dl
test edx, edx
jne 0x1400033c0
mov ecx, 0x80004005
call fcn.14001bed0
int3
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp - 0x38], rax
call qword [sym.imp.KERNEL32.dll_GetCommandLineA]
or r13, 0xffffffffffffffff
test rax, rax
jne 0x1400033e2
mov ecx, r12d
jmp 0x1400033ee
mov rcx, r13
inc rcx
cmp byte [rax + rcx], 0
jne 0x1400033e5
mov r8d, ecx
mov rdx, rax
lea rcx, [rbp - 0x38]
call fcn.14001bef0
mov r14d, 1
mov edx, r14d
lea rcx, [r15 + 0x2d0]
call fcn.14002e3a4
call fcn.140011190
mov dword [0x140277d28], eax
call fcn.140024fb0
mov rdx, rax
mov ecx, r12d
test rax, rax
setne cl
test ecx, ecx
jne 0x14000343d
mov ecx, 0x80004005
call fcn.14001bed0
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rbp - 0x50], rbx
call qword [sym.imp.KERNEL32.dll_GetUserDefaultUILanguage]
movzx edx, ax
lea rcx, [rbp - 0x28]
call fcn.14000e6a0
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
add rbx, 0xffffffffffffffe8
cmp rcx, rbx
je 0x1400034b3
cmp dword [rbx + 0x10], 0
jl 0x1400034a5
mov rax, qword [rbx]
cmp qword [rcx], rax
jne 0x1400034a5
call fcn.14001b870
mov rdi, rax
lock add dword [rbx + 0x10], 0xffffffff
jg 0x14000349b
mov rcx, qword [rbx]
mov r8, qword [rcx]
mov rdx, rbx
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
lea rax, [rdi + 0x18]
mov qword [rbp - 0x50], rax
jmp 0x1400034b3
mov r8d, dword [rdx - 0x10]
lea rcx, [rbp - 0x50]
call fcn.14001bef0
nop
mov rdx, qword [rbp - 0x28]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x1400034cb
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rcx, [r15 + 0x480]
mov rdx, qword [rbp - 0x50]
call fcn.14002e33c
call fcn.140024fb0
mov rdx, rax
mov ecx, r12d
test rax, rax
setne cl
test ecx, ecx
jne 0x1400034fb
mov ecx, 0x80004005
call fcn.14001bed0
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp + 0xb8], rax
call fcn.140024fb0
mov rdx, rax
mov ecx, r12d
test rax, rax
setne cl
test ecx, ecx
jne 0x14000352f
mov ecx, 0x80004005
call fcn.14001bed0
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + 0x18]
lea rdi, [rax + 0x18]
mov qword [rsp + 0x40], rdi
mov qword [rbp], VariantTimeToDosDateTime
mov dword [rbp + 0x1c], r12d
mov dword [rbp + 8], reloc.OLEAUT32.dll_DllRegisterServer
lea r9, [rbp]
xor r8d, r8d
mov edx, 0x101b
mov rcx, qword [r15 + 0x3e8]
call qword [sym.imp.USER32.dll_SendMessageA]
mov qword [rbp], VariantTimeToDosDateTime
mov dword [rbp + 0x1c], r14d
mov dword [rbp + 8], 0x78
lea r9, [rbp]
mov r8, r14
mov edx, 0x101b
mov rcx, qword [r15 + 0x3e8]
call qword [sym.imp.USER32.dll_SendMessageA]
mov r9d, 0x20
xor r8d, r8d
mov edx, 0x1036
mov rcx, qword [r15 + 0x3e8]
call qword [sym.imp.USER32.dll_SendMessageA]
mov qword [rsp + 0x30], r12
mov dword [rsp + 0x28], r12d
mov dword [rsp + 0x20], 3
xor r9d, r9d
xor r8d, r8d
mov edx, 0xc0000000
lea rcx, str..ETD
call qword [sym.imp.KERNEL32.dll_CreateFileA]
mov qword [0x140268298], rax
mov edx, r14d
cmp rax, 0xffffffffffffffff
cmove edx, r12d
mov dword [0x140277f80], edx
test edx, edx
jne 0x14000360b
lea rcx, [r15 + 0x2d0]
call fcn.14002def4
jmp 0x140004a8c
lea rax, [rbp - 0x30]
mov qword [rsp + 0x20], rax
mov r9d, 0x20019
xor r8d, r8d
lea rdx, str.SystemCurrentControlSetControlElantechOtherSetting
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x140003661
lea rdx, str.EnableSHMReportVirtualPoint
lea rcx, [rbp + 0x40]
call fcn.14001c020
mov rdx, rax
mov rcx, qword [rbp - 0x30]
call fcn.1400104a0
mov dword [0x140277d24], eax
mov rcx, qword [rbp - 0x30]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
call fcn.14000c1b0
call fcn.14000c370
mov eax, dword [0x140277d58]
lea rcx, [0x140000000]
mov eax, dword [rcx + rax*4 + 0x277d5c]
mov dword [0x140277d2c], eax
call fcn.14000c4e0
call fcn.14000c740
call fcn.14000ccc0
call fcn.14000d060
call fcn.14000d490
call fcn.14000d850
call fcn.14000dbf0
call fcn.14000df90
movzx eax, byte [0x140277d33]
movzx ecx, byte [0x140277d3a]
and al, 0xf
cmp al, 6
jne 0x1400036d8
sub cl, 0x3d
movzx eax, byte [0x140277d21]
cmp cl, 1
cmovbe eax, r14d
mov byte [0x140277d21], al
call fcn.14000c020
mov r8d, 0xe
lea rdx, str.Driver_Version
lea rcx, [rbp + 0xb8]
call fcn.14001bef0
mov rdx, qword [0x14027a1f8]
lea rcx, [rdx - 0x18]
lea rbx, [rdi - 0x18]
cmp rcx, rbx
je 0x140003752
cmp dword [rbx + 0x10], 0
jl 0x14000373f
mov rax, qword [rbx]
cmp qword [rcx], rax
jne 0x14000373f
call fcn.14001b870
mov rdi, rax
lock add dword [rbx + 0x10], 0xffffffff
jg 0x140003734
mov rcx, qword [rbx]
mov r8, qword [rcx]
mov rdx, rbx
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
add rdi, 0x18
mov qword [rsp + 0x40], rdi
jmp 0x140003752
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x40]
call fcn.14001bef0
mov rdi, qword [rsp + 0x40]
mov qword [rsp + 0x50], 1
mov dword [rsp + 0x58], r12d
mov rax, qword [rbp + 0xb8]
cmp dword [rax - 8], 1
jle 0x140003783
mov edx, dword [rax - 0x10]
lea rcx, [rbp + 0xb8]
call fcn.14001bd60
mov rax, qword [rbp + 0xb8]
mov qword [rsp + 0x68], rax
lea r9, [rsp + 0x50]
xor r8d, r8d
mov edx, 0x1007
mov rcx, qword [r15 + 0x3e8]
call qword [sym.imp.USER32.dll_SendMessageA]
lea rsi, [r15 + 0x3a8]
mov qword [rbp - 0x48], rsi
mov r9, rdi
mov r8d, r14d
xor edx, edx
mov rcx, rsi
call fcn.14002f05c
mov r8d, VariantTimeToDosDateTime
lea rdx, str.Device_Type
lea rcx, [rbp + 0xb8]
call fcn.14001bef0
mov rdx, qword [0x14027c208]
lea rcx, [rdx - 0x18]
lea rbx, [rdi - 0x18]
cmp rcx, rbx
je 0x140003832
cmp dword [rbx + 0x10], 0
jl 0x14000381f
mov rax, qword [rbx]
cmp qword [rcx], rax
jne 0x14000381f
call fcn.14001b870
mov rdi, rax
lock add dword [rbx + 0x10], 0xffffffff
jg 0x140003814
mov rcx, qword [rbx]
mov r8, qword [rcx]
mov rdx, rbx
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
add rdi, 0x18
mov qword [rsp + 0x40], rdi
jmp 0x140003832
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x40]
call fcn.14001bef0
mov rdi, qword [rsp + 0x40]
mov dword [rsp + 0x50], r14d
mov qword [rsp + 0x54], 1
mov rax, qword [rbp + 0xb8]
cmp dword [rax - 8], 1
jle 0x140003863
mov edx, dword [rax - 0x10]
lea rcx, [rbp + 0xb8]
call fcn.14001bd60
mov rax, qword [rbp + 0xb8]
mov qword [rsp + 0x68], rax
lea r9, [rsp + 0x50]
xor r8d, r8d
mov edx, 0x1007
mov rcx, qword [r15 + 0x3e8]
call qword [sym.imp.USER32.dll_SendMessageA]
mov r9, rdi
mov r8d, r14d
mov edx, r14d
mov rcx, rsi
call fcn.14002f05c
mov r8d, VariantTimeToDosDateTime
lea rdx, str.Module_Type
lea rcx, [rbp + 0xb8]
call fcn.14001bef0
mov rdx, qword [0x14027c210]
lea rcx, [rdx - 0x18]
lea rbx, [rdi - 0x18]
cmp rcx, rbx
je 0x140003908
cmp dword [rbx + 0x10], 0
jl 0x1400038f5
mov rax, qword [rbx]
cmp qword [rcx], rax
jne 0x1400038f5
call fcn.14001b870
mov rdi, rax
lock add dword [rbx + 0x10], 0xffffffff
jg 0x1400038ea
mov rcx, qword [rbx]
mov r8, qword [rcx]
mov rdx, rbx
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
add rdi, 0x18
mov qword [rsp + 0x40], rdi
jmp 0x140003908
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x40]
call fcn.14001bef0
mov rdi, qword [rsp + 0x40]
mov dword [rsp + 0x50], r14d
mov qword [rsp + 0x54], 2
mov rax, qword [rbp + 0xb8]
cmp dword [rax - 8], 1
jle 0x140003939
mov edx, dword [rax - 0x10]
lea rcx, [rbp + 0xb8]
call fcn.14001bd60
mov rax, qword [rbp + 0xb8]
mov qword [rsp + 0x68], rax
lea r9, [rsp + 0x50]
xor r8d, r8d
mov edx, 0x1007
mov rcx, qword [r15 + 0x3e8]
call qword [sym.imp.USER32.dll_SendMessageA]
mov r9, rdi
mov r8d, r14d
mov edx, 2
mov rcx, rsi
call fcn.14002f05c
mov r8d, 0x15
lea rdx, str.Support_Finger_Number
lea rcx, [rbp + 0xb8]
call fcn.14001bef0
mov rdx, qword [0x14027c218]
lea rcx, [rdx - 0x18]
lea rbx, [rdi - 0x18]
cmp rcx, rbx
je 0x1400039e0
cmp dword [rbx + 0x10], 0
jl 0x1400039cd
mov rax, qword [rbx]
cmp qword [rcx], rax
jne 0x1400039cd
call fcn.14001b870
mov rdi, rax
lock add dword [rbx + 0x10], 0xffffffff
jg 0x1400039c2
mov rcx, qword [rbx]
mov r8, qword [rcx]
mov rdx, rbx
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
add rdi, 0x18
mov qword [rsp + 0x40], rdi
jmp 0x1400039e0
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x40]
call fcn.14001bef0
mov rdi, qword [rsp + 0x40]
mov dword [rsp + 0x50], r14d
mov qword [rsp + 0x54], 3
mov rax, qword [rbp + 0xb8]
cmp dword [rax - 8], 1
jle 0x140003a11
mov edx, dword [rax - 0x10]
lea rcx, [rbp + 0xb8]
call fcn.14001bd60
mov rax, qword [rbp + 0xb8]
mov qword [rsp + 0x68], rax
lea r9, [rsp + 0x50]
xor r8d, r8d
mov edx, 0x1007
mov rcx, qword [r15 + 0x3e8]
call qword [sym.imp.USER32.dll_SendMessageA]
mov r9, rdi
mov r8d, r14d
mov edx, 3
mov rcx, rsi
call fcn.14002f05c
mov r12d, 8
mov r8d, r12d
lea rdx, str.KBC_Mode
lea rcx, [rbp + 0xb8]
call fcn.14001bef0
lea rcx, [rsp + 0x40]
cmp dword [0x140277d54], 0
jne 0x140003a7b
lea r8d, [r12 - 2]
lea rdx, str.Legacy
jmp 0x140003a88
mov r8d, 9
lea rdx, str.Multiplex
call fcn.14001bef0
mov dword [rsp + 0x50], r14d
mov qword [rsp + 0x54], 4
mov rax, qword [rbp + 0xb8]
cmp dword [rax - 8], 1
jle 0x140003abe
mov edx, dword [rax - 0x10]
lea rcx, [rbp + 0xb8]
call fcn.14001bd60
mov rax, qword [rbp + 0xb8]
mov qword [rsp + 0x68], rax
lea r9, [rsp + 0x50]
xor r8d, r8d
mov edx, 0x1007
mov rcx, qword [r15 + 0x3e8]
call qword [sym.imp.USER32.dll_SendMessageA]
mov r9, qword [rsp + 0x40]
mov r8d, r14d
mov edx, 4
mov rcx, rsi
call fcn.14002f05c
mov r8d, 0x10
lea rdx, str.TouchPad_Max_Dot
lea rcx, [rbp + 0xb8]
call fcn.14001bef0
mov r9d, dword [0x140277f58]
mov r8d, dword [0x140277f7c]
lea rdx, str._d____d
lea rcx, [rsp + 0x40]
call fcn.14001b830
mov dword [rsp + 0x50], r14d
mov qword [rsp + 0x54], 5
mov rax, qword [rbp + 0xb8]
cmp dword [rax - 8], 1
jle 0x140003b5b
mov edx, dword [rax - 0x10]
lea rcx, [rbp + 0xb8]
call fcn.14001bd60
mov rax, qword [rbp + 0xb8]
mov qword [rsp + 0x68], rax
lea r9, [rsp + 0x50]
xor r8d, r8d
mov edx, 0x1007
mov rcx, qword [r15 + 0x3e8]
call qword [sym.imp.USER32.dll_SendMessageA]
mov rbx, qword [rsp + 0x40]
mov r9, rbx
mov r8d, r14d
mov edx, 5
mov rcx, rsi
call fcn.14002f05c
mov r8d, 4
lea rdx, str.D100
lea rcx, [rbp + 0xb8]
call fcn.14001bef0
mov rdx, qword [0x14027c220]
lea rcx, [rdx - 0x18]
lea rdi, [rbx - 0x18]
cmp rcx, rdi
je 0x140003c07
cmp dword [rdi + 0x10], 0
jl 0x140003bf4
mov rax, qword [rdi]
cmp qword [rcx], rax
jne 0x140003bf4
call fcn.14001b870
mov rbx, rax
lock add dword [rdi + 0x10], 0xffffffff
jg 0x140003be9
mov rcx, qword [rdi]
mov r8, qword [rcx]
mov rdx, rdi
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
add rbx, 0x18
mov qword [rsp + 0x40], rbx
jmp 0x140003c07
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x40]
call fcn.14001bef0
mov rbx, qword [rsp + 0x40]
mov dword [rsp + 0x50], r14d
mov qword [rsp + 0x54], 6
mov rax, qword [rbp + 0xb8]
cmp dword [rax - 8], 1
jle 0x140003c38
mov edx, dword [rax - 0x10]
lea rcx, [rbp + 0xb8]
call fcn.14001bd60
mov rax, qword [rbp + 0xb8]
mov qword [rsp + 0x68], rax
lea r9, [rsp + 0x50]
xor r8d, r8d
mov edx, 0x1007
mov rcx, qword [r15 + 0x3e8]
call qword [sym.imp.USER32.dll_SendMessageA]
mov r9, rbx
mov r8d, r14d
mov edx, 6
mov rcx, rsi
call fcn.14002f05c
mov r8d, 4
lea rdx, str.D101
lea rcx, [rbp + 0xb8]
call fcn.14001bef0
mov rdx, qword [0x14027c228]
lea rcx, [rdx - 0x18]
lea rdi, [rbx - 0x18]
cmp rcx, rdi
je 0x140003cdf
cmp dword [rdi + 0x10], 0
jl 0x140003ccc
mov rax, qword [rdi]
cmp qword [rcx], rax
jne 0x140003ccc
call fcn.14001b870
mov rbx, rax
lock add dword [rdi + 0x10], 0xffffffff
jg 0x140003cc1
mov rcx, qword [rdi]
mov r8, qword [rcx]
mov rdx, rdi
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
add rbx, 0x18
mov qword [rsp + 0x40], rbx
jmp 0x140003cdf
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x40]
call fcn.14001bef0
mov rbx, qword [rsp + 0x40]
mov dword [rsp + 0x50], r14d
mov qword [rsp + 0x54], 7
mov rax, qword [rbp + 0xb8]
cmp dword [rax - 8], 1
jle 0x140003d10
mov edx, dword [rax - 0x10]
lea rcx, [rbp + 0xb8]
call fcn.14001bd60
mov rax, qword [rbp + 0xb8]
mov qword [rsp + 0x68], rax
lea r9, [rsp + 0x50]
xor r8d, r8d
mov edx, 0x1007
mov rcx, qword [r15 + 0x3e8]
call qword [sym.imp.USER32.dll_SendMessageA]
mov r9, rbx
mov r8d, r14d
mov edx, 7
mov rcx, rsi
call fcn.14002f05c
mov r8d, 4
lea rdx, str.D102
lea rcx, [rbp + 0xb8]
call fcn.14001bef0
mov rdx, qword [0x14027c230]
lea rcx, [rdx - 0x18]
lea rdi, [rbx - 0x18]
cmp rcx, rdi
je 0x140003db7
cmp dword [rdi + 0x10], 0
jl 0x140003da4
mov rax, qword [rdi]
cmp qword [rcx], rax
jne 0x140003da4
call fcn.14001b870
mov rbx, rax
lock add dword [rdi + 0x10], 0xffffffff
jg 0x140003d99
mov rcx, qword [rdi]
mov r8, qword [rcx]
mov rdx, rdi
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
add rbx, 0x18
mov qword [rsp + 0x40], rbx
jmp 0x140003db7
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x40]
call fcn.14001bef0
mov rbx, qword [rsp + 0x40]
mov dword [rsp + 0x50], r14d
mov qword [rsp + 0x54], r12
mov rax, qword [rbp + 0xb8]
cmp dword [rax - 8], 1
jle 0x140003de4
mov edx, dword [rax - 0x10]
lea rcx, [rbp + 0xb8]
call fcn.14001bd60
mov rax, qword [rbp + 0xb8]
mov qword [rsp + 0x68], rax
lea r9, [rsp + 0x50]
xor r8d, r8d
mov edx, 0x1007
mov rcx, qword [r15 + 0x3e8]
call qword [sym.imp.USER32.dll_SendMessageA]
mov r9, rbx
mov r8d, r14d
mov edx, r12d
mov rcx, rsi
call fcn.14002f05c
cmp byte [0x140277d20], 1
jne 0x140003fde
mov r8d, 4
lea rdx, [0x140222698]
lea rcx, [rbp + 0xb8]
call fcn.14001bef0
mov rdx, qword [0x14027c238]
lea rcx, [rdx - 0x18]
lea rdi, [rbx - 0x18]
cmp rcx, rdi
je 0x140003e96
cmp dword [rdi + 0x10], 0
jl 0x140003e83
mov rax, qword [rdi]
cmp qword [rcx], rax
jne 0x140003e83
call fcn.14001b870
mov rbx, rax
lock add dword [rdi + 0x10], 0xffffffff
jg 0x140003e78
mov rcx, qword [rdi]
mov r8, qword [rcx]
mov rdx, rdi
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
add rbx, 0x18
mov qword [rsp + 0x40], rbx
jmp 0x140003e96
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x40]
call fcn.14001bef0
mov rbx, qword [rsp + 0x40]
mov r12d, 9
mov dword [rsp + 0x50], r14d
mov qword [rsp + 0x54], r12
mov rax, qword [rbp + 0xb8]
cmp dword [rax - 8], 1
jle 0x140003ec9
mov edx, dword [rax - 0x10]
lea rcx, [rbp + 0xb8]
call fcn.14001bd60
mov rax, qword [rbp + 0xb8]
mov qword [rsp + 0x68], rax
lea r9, [rsp + 0x50]
xor r8d, r8d
mov edx, 0x1007
mov rcx, qword [r15 + 0x3e8]
call qword [sym.imp.USER32.dll_SendMessageA]
mov r9, rbx
mov r8d, r14d
mov edx, r12d
mov rcx, rsi
call fcn.14002f05c
cmp byte [0x140277d20], 1
jne 0x140003fde
mov r8d, 4
lea rdx, [0x1402226a0]
lea rcx, [rbp + 0xb8]
call fcn.14001bef0
mov rdx, qword [0x14027c240]
lea rcx, [rdx - 0x18]
lea rdi, [rbx - 0x18]
cmp rcx, rdi
je 0x140003f7b
cmp dword [rdi + 0x10], 0
jl 0x140003f68
mov rax, qword [rdi]
cmp qword [rcx], rax
jne 0x140003f68
call fcn.14001b870
mov rbx, rax
lock add dword [rdi + 0x10], 0xffffffff
jg 0x140003f5d
mov rcx, qword [rdi]
mov r8, qword [rcx]
mov rdx, rdi
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
add rbx, 0x18
mov qword [rsp + 0x40], rbx
jmp 0x140003f7b
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x40]
call fcn.14001bef0
mov rbx, qword [rsp + 0x40]
mov r12d, 0xa
mov dword [rsp + 0x50], r14d
mov qword [rsp + 0x54], r12
mov rax, qword [rbp + 0xb8]
cmp dword [rax - 8], 1
jle 0x140003fae
mov edx, dword [rax - 0x10]
lea rcx, [rbp + 0xb8]
call fcn.14001bd60
mov rax, qword [rbp + 0xb8]
mov qword [rsp + 0x68], rax
lea r9, [rsp + 0x50]
xor r8d, r8d
mov edx, 0x1007
mov rcx, qword [r15 + 0x3e8]
call qword [sym.imp.USER32.dll_SendMessageA]
mov r9, rbx
mov r8d, r14d
mov edx, r12d
mov rcx, rsi
call fcn.14002f05c
mov r8d, 0xd
lea rdx, str.TouchPad_Port
lea rcx, [rbp + 0xb8]
call fcn.14001bef0
mov r8d, dword [0x140277d58]
lea rdx, [0x140225a74]
lea rcx, [rsp + 0x40]
call fcn.14001b830
inc r12d
mov dword [rsp + 0x50], r14d
mov dword [rsp + 0x54], r12d
mov dword [rsp + 0x58], 0
mov rbx, qword [rbp + 0xb8]
cmp dword [rbx - 8], 1
jle 0x140004047
mov edx, dword [rbx - 0x10]
lea rcx, [rbp + 0xb8]
call fcn.14001bd60
mov rbx, qword [rbp + 0xb8]
mov qword [rsp + 0x68], rbx
lea r9, [rsp + 0x50]
xor r8d, r8d
mov edx, 0x1007
mov rcx, qword [r15 + 0x3e8]
call qword [sym.imp.USER32.dll_SendMessageA]
mov rdi, qword [rsp + 0x40]
mov r9, rdi
mov r8d, r14d
mov edx, r12d
mov rcx, rsi
call fcn.14002f05c
xor r14d, r14d
mov dword [rbp + 0xa8], r14d
lea rsi, [0x140277dac]
mov qword [rsp + 0x48], rsi
cmp dword [rsi - 0x28], 1
jne 0x140004553
call fcn.140024fb0
xor ecx, ecx
test rax, rax
setne cl
test ecx, ecx
je 0x1400045c9
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x18]
add rax, 0x18
mov qword [rbp - 0x40], rax
mov r8d, r14d
lea rdx, [0x140225a74]
lea rcx, [rbp - 0x40]
call fcn.14001b830
lea r8, [rbp - 0x40]
lea rdx, str.Port
lea rcx, [rbp - 0x10]
call fcn.14001b4d0
nop
lea r8, str._Status
mov rdx, rax
lea rcx, [rbp - 0x18]
call fcn.14001b6b0
nop
mov r15, qword [rax]
lea rcx, [r15 - 0x18]
lea rdi, [rbx - 0x18]
cmp rcx, rdi
je 0x140004232
cmp dword [rdi + 0x10], 0
jl 0x14000414c
mov rax, qword [rdi]
cmp qword [rcx], rax
jne 0x14000414c
call fcn.14001b870
mov rbx, rax
lock add dword [rdi + 0x10], 0xffffffff
jg 0x14000413c
mov rcx, qword [rdi]
mov r8, qword [rcx]
mov rdx, rdi
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
lea rax, [rbx + 0x18]
mov qword [rbp + 0xb8], rax
jmp 0x140004232
movsxd rsi, dword [r15 - 0x10]
test esi, esi
jne 0x1400041ac
mov rsi, qword [rdi]
cmp dword [rdi + 8], 0
je 0x14000422d
cmp dword [rdi + 0x10], 0
jge 0x140004180
cmp dword [rbx - 0xc], 0
jl 0x140004571
mov dword [rbx - 0x10], 0
mov byte [rbx], 0
jmp 0x14000422d
lock add dword [rdi + 0x10], 0xffffffff
jg 0x140004193
mov rcx, qword [rdi]
mov rax, qword [rcx]
mov rdx, rdi
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp + 0xb8], rax
jmp 0x14000422d
test r15, r15
je 0x140004592
mov eax, dword [rbx - 0x10]
mov dword [rbp + 0xb0], eax
mov r14, r15
sub r14, rbx
test esi, esi
js 0x140004587
mov ecx, 1
sub ecx, dword [rdi + 0x10]
mov eax, dword [rdi + 0xc]
sub eax, esi
or eax, ecx
jge 0x1400041f2
mov edx, esi
lea rcx, [rbp + 0xb8]
call fcn.14001be70
mov rbx, qword [rbp + 0xb8]
mov eax, dword [rbp + 0xb0]
mov rdi, rsi
movsxd rdx, dword [rbx - 0xc]
mov r9, rsi
mov rcx, rbx
cmp r14, rax
ja 0x140004215
lea r8, [r14 + rbx]
call fcn.14019a830
jmp 0x14000421d
mov r8, r15
call fcn.14019a7a8
cmp esi, dword [rbx - 0xc]
jg 0x14000457c
mov dword [rbx - 0x10], esi
mov byte [rdi + rbx], 0
mov rsi, qword [rsp + 0x48]
mov rdx, qword [rbp - 0x18]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x14000424b
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp - 0x10]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x140004263
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rcx, [rsp + 0x40]
cmp dword [rsi], 1
jne 0x14000427c
mov r8d, 6
lea rdx, str.Enable
jmp 0x140004289
mov r8d, 7
lea rdx, str.Disable
call fcn.14001bef0
inc r12d
mov dword [rsp + 0x50], 1
mov dword [rsp + 0x54], r12d
mov dword [rsp + 0x58], 0
mov rbx, qword [rbp + 0xb8]
cmp dword [rbx - 8], 1
jle 0x1400042c9
mov edx, dword [rbx - 0x10]
lea rcx, [rbp + 0xb8]
call fcn.14001bd60
mov rbx, qword [rbp + 0xb8]
mov qword [rsp + 0x68], rbx
lea r9, [rsp + 0x50]
xor r8d, r8d
mov edx, 0x1007
mov rcx, qword [rbp + 0xa0]
mov rcx, qword [rcx + 0x3e8]
call qword [sym.imp.USER32.dll_SendMessageA]
mov r9, qword [rsp + 0x40]
mov r8d, 1
mov edx, r12d
mov r14, qword [rbp - 0x48]
mov rcx, r14
call fcn.14002f05c
lea r8, [rbp - 0x40]
lea rdx, str.Port
lea rcx, [rbp - 0x20]
call fcn.14001b4d0
nop
lea r8, str._Type
mov rdx, rax
lea rcx, [rbp - 8]
call fcn.14001b6b0
nop
mov r15, qword [rax]
lea rcx, [r15 - 0x18]
lea rdi, [rbx - 0x18]
cmp rcx, rdi
je 0x14000446a
cmp dword [rdi + 0x10], 0
jl 0x140004380
mov rax, qword [rdi]
cmp qword [rcx], rax
jne 0x140004380
call fcn.14001b870
mov rbx, rax
lock add dword [rdi + 0x10], 0xffffffff
jg 0x140004370
mov rcx, qword [rdi]
mov r8, qword [rcx]
mov rdx, rdi
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
lea rax, [rbx + 0x18]
mov qword [rbp + 0xb8], rax
jmp 0x14000446a
movsxd rsi, dword [r15 - 0x10]
test esi, esi
jne 0x1400043e0
mov rsi, qword [rdi]
cmp dword [rdi + 8], 0
je 0x140004465
cmp dword [rdi + 0x10], 0
jge 0x1400043b4
cmp dword [rbx - 0xc], 0
jl 0x14000459d
mov dword [rbx - 0x10], 0
mov byte [rbx], 0
jmp 0x140004465
lock add dword [rdi + 0x10], 0xffffffff
jg 0x1400043c7
mov rcx, qword [rdi]
mov rax, qword [rcx]
mov rdx, rdi
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp + 0xb8], rax
jmp 0x140004465
test r15, r15
je 0x1400045be
mov eax, dword [rbx - 0x10]
mov dword [rbp + 0xb0], eax
mov r14, r15
sub r14, rbx
test esi, esi
js 0x1400045b3
mov ecx, 1
sub ecx, dword [rdi + 0x10]
mov eax, dword [rdi + 0xc]
sub eax, esi
or eax, ecx
jge 0x140004426
mov edx, esi
lea rcx, [rbp + 0xb8]
call fcn.14001be70
mov rbx, qword [rbp + 0xb8]
mov eax, dword [rbp + 0xb0]
mov rdi, rsi
movsxd rdx, dword [rbx - 0xc]
mov r9, rsi
mov rcx, rbx
cmp r14, rax
ja 0x140004449
lea r8, [r14 + rbx]
call fcn.14019a830
jmp 0x140004451
mov r8, r15
call fcn.14019a7a8
cmp esi, dword [rbx - 0xc]
jg 0x1400045a8
mov dword [rbx - 0x10], esi
mov byte [rdi + rbx], 0
mov r14, qword [rbp - 0x48]
mov rsi, qword [rsp + 0x48]
mov rdx, qword [rbp - 8]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x140004483
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp - 0x20]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x14000449b
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov r8d, dword [rsi - 0x50]
lea rdx, [0x1402226e0]
lea rcx, [rsp + 0x40]
call fcn.14001b830
inc r12d
mov dword [rsp + 0x50], 1
mov dword [rsp + 0x54], r12d
mov dword [rsp + 0x58], 0
mov rax, qword [rbp + 0xb8]
cmp dword [rax - 8], 1
jle 0x1400044eb
mov edx, dword [rax - 0x10]
lea rcx, [rbp + 0xb8]
call fcn.14001bd60
mov rax, qword [rbp + 0xb8]
mov qword [rsp + 0x68], rax
lea r9, [rsp + 0x50]
xor r8d, r8d
mov edx, 0x1007
mov r15, qword [rbp + 0xa0]
mov rcx, qword [r15 + 0x3e8]
call qword [sym.imp.USER32.dll_SendMessageA]
mov r9, qword [rsp + 0x40]
mov r8d, 1
mov edx, r12d
mov rcx, r14
call fcn.14002f05c
nop
mov rdx, qword [rbp - 0x40]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x140004540
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov r14d, dword [rbp + 0xa8]
mov rdi, qword [rsp + 0x40]
mov rbx, qword [rbp + 0xb8]
inc r14d
mov dword [rbp + 0xa8], r14d
add rsi, 4
mov qword [rsp + 0x48], rsi
cmp r14d, 4
jae 0x1400045d4
jmp 0x140004092
mov ecx, 0x80070057
call fcn.14001bed0
int3
mov ecx, 0x80070057
call fcn.14001bed0
int3
mov ecx, 0x80070057
call fcn.14001bed0
int3
mov ecx, 0x80070057
call fcn.14001bed0
nop
mov ecx, 0x80070057
call fcn.14001bed0
int3
mov ecx, 0x80070057
call fcn.14001bed0
int3
mov ecx, 0x80070057
call fcn.14001bed0
int3
mov ecx, 0x80070057
call fcn.14001bed0
nop
mov ecx, 0x80004005
call fcn.14001bed0
int3
xor r14d, r14d
mov dword [rbp + 0xa8], r14d
cmp dword [0x1402781f0], r14d
jbe 0x1400048e4
nop dword [rax + rax]
test r14d, r14d
jne 0x14000466c
mov r15d, dword [rbx - 0x10]
lea rsi, str.PS_2_Hardware_ID
sub rsi, rbx
mov ecx, 1
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, 0x10
or eax, ecx
jge 0x14000462c
lea edx, [r14 + 0x10]
lea rcx, [rbp + 0xb8]
call fcn.14001be70
mov rbx, qword [rbp + 0xb8]
movsxd rdx, dword [rbx - 0xc]
mov r9d, 0x10
mov rcx, rbx
cmp rsi, r15
ja 0x140004649
lea r8, [rsi + rbx]
call fcn.14019a830
jmp 0x140004655
lea r8, str.PS_2_Hardware_ID
call fcn.14019a7a8
cmp dword [rbx - 0xc], 0x10
jl 0x1400048a2
mov dword [rbx - 0x10], 0x10
mov byte [rbx + 0x10], 0
jmp 0x1400046be
lea rdx, [rbx - 0x18]
mov rsi, qword [rdx]
cmp dword [rdx + 8], 0
je 0x1400046be
cmp dword [rdx + 0x10], 0
jge 0x140004695
cmp dword [rbx - 0xc], 0
jl 0x1400048ad
mov dword [rbx - 0x10], 0
mov byte [rbx], 0
jmp 0x1400046be
lock add dword [rdx + 0x10], 0xffffffff
jg 0x1400046a5
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rbp + 0xb8], rbx
mov rdi, qword [rsp + 0x40]
lea rcx, [0x140000000]
mov r15, qword [rcx + r14*8 + 0x2781f8]
lea rcx, [r15 - 0x18]
lea rsi, [rdi - 0x18]
cmp rcx, rsi
je 0x140004818
cmp dword [rsi + 0x10], 0
jl 0x14000471d
mov rax, qword [rsi]
cmp qword [rcx], rax
jne 0x14000471d
call fcn.14001b870
mov rdi, rax
lock add dword [rsi + 0x10], 0xffffffff
jg 0x140004708
mov rcx, qword [rsi]
mov r8, qword [rcx]
mov rdx, rsi
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
add rdi, 0x18
mov qword [rsp + 0x40], rdi
mov rbx, qword [rbp + 0xb8]
jmp 0x140004818
movsxd r14, dword [r15 - 0x10]
test r14d, r14d
jne 0x140004783
mov r14, qword [rsi]
cmp dword [rsi + 8], 0
je 0x140004811
cmp dword [rsi + 0x10], 0
jge 0x140004752
cmp dword [rdi - 0xc], 0
jl 0x1400048b8
mov dword [rdi - 0x10], 0
mov byte [rdi], 0
jmp 0x140004811
lock add dword [rsi + 0x10], 0xffffffff
jg 0x140004765
mov rcx, qword [rsi]
mov rax, qword [rcx]
mov rdx, rsi
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rax, qword [r14]
mov rcx, r14
call qword [rax + 0x18]
lea rdi, [rax + 0x18]
mov qword [rsp + 0x40], rdi
mov rbx, qword [rbp + 0xb8]
jmp 0x140004811
test r15, r15
je 0x1400048d9
mov eax, dword [rdi - 0x10]
mov dword [rbp + 0xb0], eax
mov rdx, r15
sub rdx, rdi
mov qword [rbp - 0x48], rdx
test r14d, r14d
js 0x1400048ce
mov ecx, 1
sub ecx, dword [rsi + 0x10]
mov eax, dword [rsi + 0xc]
sub eax, r14d
or eax, ecx
jge 0x1400047d0
mov edx, r14d
lea rcx, [rsp + 0x40]
call fcn.14001be70
mov rdi, qword [rsp + 0x40]
mov rdx, qword [rbp - 0x48]
mov eax, dword [rbp + 0xb0]
mov rsi, r14
mov r9, r14
mov rcx, rdi
cmp rdx, rax
ja 0x1400047f3
lea r8, [rdx + rdi]
movsxd rdx, dword [rdi - 0xc]
call fcn.14019a830
jmp 0x1400047ff
movsxd rdx, dword [rdi - 0xc]
mov r8, r15
call fcn.14019a7a8
cmp r14d, dword [rdi - 0xc]
jg 0x1400048c3
mov dword [rdi - 0x10], r14d
mov byte [rsi + rdi], 0
mov r14d, dword [rbp + 0xa8]
inc r12d
mov dword [rsp + 0x50], 1
mov dword [rsp + 0x54], r12d
mov dword [rsp + 0x58], 0
cmp dword [rbx - 8], 1
jle 0x14000484c
mov edx, dword [rbx - 0x10]
lea rcx, [rbp + 0xb8]
call fcn.14001bd60
mov rbx, qword [rbp + 0xb8]
mov qword [rsp + 0x68], rbx
lea r9, [rsp + 0x50]
xor r8d, r8d
mov edx, 0x1007
mov r15, qword [rbp + 0xa0]
mov rcx, qword [r15 + 0x3e8]
call qword [sym.imp.USER32.dll_SendMessageA]
mov r9, rdi
mov r8d, 1
mov edx, r12d
lea rcx, [r15 + 0x3a8]
call fcn.14002f05c
inc r14d
mov dword [rbp + 0xa8], r14d
cmp r14d, dword [0x1402781f0]
jae 0x1400048e4
jmp 0x1400045f0
mov ecx, 0x80070057
call fcn.14001bed0
int3
mov ecx, 0x80070057
call fcn.14001bed0
int3
mov ecx, 0x80070057
call fcn.14001bed0
int3
mov ecx, 0x80070057
call fcn.14001bed0
int3
mov ecx, 0x80070057
call fcn.14001bed0
int3
mov ecx, 0x80070057
call fcn.14001bed0
int3
xor esi, esi
lea r14d, [rsi + 1]
cmp dword [0x14027a200], esi
jbe 0x140004a05
nop word [rax + rax]
lea rcx, [rbp + 0xb8]
test esi, esi
jne 0x140004918
lea r8d, [rsi + 0x12]
lea rdx, str.PS_2_Compatible_ID
jmp 0x140004922
xor r8d, r8d
lea rdx, [0x140225ea8]
call fcn.14001bef0
lea rcx, [0x140000000]
mov rdx, qword [rcx + rsi*8 + 0x27a208]
lea rcx, [rdx - 0x18]
lea rbx, [rdi - 0x18]
cmp rcx, rbx
je 0x14000498b
cmp dword [rbx + 0x10], 0
jl 0x140004978
mov rax, qword [rbx]
cmp qword [rcx], rax
jne 0x140004978
call fcn.14001b870
mov rdi, rax
lock add dword [rbx + 0x10], 0xffffffff
jg 0x14000496d
mov rcx, qword [rbx]
mov r8, qword [rcx]
mov rdx, rbx
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
add rdi, 0x18
mov qword [rsp + 0x40], rdi
jmp 0x14000498b
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x40]
call fcn.14001bef0
mov rdi, qword [rsp + 0x40]
inc r12d
mov dword [rsp + 0x50], r14d
mov dword [rsp + 0x54], r12d
mov dword [rsp + 0x58], 0
mov rax, qword [rbp + 0xb8]
cmp dword [rax - 8], r14d
jle 0x1400049c3
mov edx, dword [rax - 0x10]
lea rcx, [rbp + 0xb8]
call fcn.14001bd60
mov rax, qword [rbp + 0xb8]
mov qword [rsp + 0x68], rax
lea r9, [rsp + 0x50]
xor r8d, r8d
mov edx, 0x1007
mov rcx, qword [r15 + 0x3e8]
call qword [sym.imp.USER32.dll_SendMessageA]
mov r9, rdi
mov r8d, r14d
mov edx, r12d
lea rcx, [r15 + 0x3a8]
call fcn.14002f05c
inc esi
cmp esi, dword [0x14027a200]
jb 0x140004900
call fcn.14000bd90
mov ebx, eax
lea r8, str.GlobalETDOther_GetKernelData
xor edx, edx
mov ecx, 0x1f0003
call qword [sym.imp.KERNEL32.dll_OpenEventA]
mov qword [0x140277e08], rax
call fcn.14000e330
cmp ebx, 1
jne 0x140004a8c
cmp qword [0x140277e08], 0
je 0x140004a8c
mov rax, qword [r15 + 0x40]
mov qword [0x140277e10], rax
xor eax, eax
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], eax
xor r9d, r9d
xor r8d, r8d
lea rdx, [0x140277e10]
lea rcx, [0x1400098d0]
call fcn.140021390
mov qword [0x140277e00], rax
test rax, rax
je 0x140004a8c
xor r9d, r9d
mov r8d, 0x1f4
mov rdx, r14
mov rcx, qword [r15 + 0x40]
call qword [sym.imp.USER32.dll_SetTimer]
mov rax, qword [r15 + 0x40]
mov qword [0x140277e18], rax
lea rdx, [rdi - 0x18]
lock add dword [rdx + 0x10], 0xffffffff
jg 0x140004aac
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp + 0xb8]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x140004ac8
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp - 0x50]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x140004ae1
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp - 0x38]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x140004afa
mov rcx, qword [rdx]
mov r8, qword [rcx]
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
mov eax, r14d
add rsp, 0x158
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret