Function at 0x140019558
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x120
mov r15d, r9d
mov rdi, r8
mov r12d, edx
mov r14, rcx
xor ebp, ebp
lea rbx, [rsp + 0x20]
mov r8d, 0x100
mov rcx, rbx
xor edx, edx
call fcn.1400ef1e0
mov byte [rsp + 0x20], 1
movzx esi, r15b
lea eax, [rsi + 6]
mov byte [rsp + 0x26], al
mov byte [rsp + 0x28], 0xaa
lea eax, [rsi + 1]
mov byte [rsp + 0x2a], al
mov byte [rsp + 0x2b], r12b
cmp sil, 0xf2
ja 0x140019797
test r15b, r15b
je 0x1400195cc
lea rcx, [rsp + 0x2c]
mov rdx, rdi
mov r8, rsi
call fcn.1400eeb30
mov r15, qword [rsp + 0x188]
mov r12, qword [rsp + 0x180]
lea eax, [rsi + 2]
xor ebp, ebp
mov cl, 1
xor edx, edx
mov ebp, ebp
xor dl, byte [rbp + rbx + 0xa]
movzx ebp, cl
inc cl
cmp eax, ebp
ja 0x1400195e5
mov byte [rsi + rbx + 0xc], dl
mov byte [rsi + rbx + 0xd], 0xbb
lea rcx, [0x140143690]
call fcn.140016430
add esi, 0xe
mov rcx, rbx
mov edx, esi
mov r8d, 1
call fcn.140023ac7
lea rcx, str.nddd
call fcn.140016430
mov ecx, 0xa
call qword [sym.imp.KERNEL32.dll_Sleep]
mov rcx, r14
mov rdx, rbx
mov r8d, 0x100
call sub.HID.DLL_HidD_SetFeature
test al, al
je 0x1400197a7
mov ecx, 0xa
call qword [sym.imp.KERNEL32.dll_Sleep]
lea rdx, [rsp + 0x20]
mov rcx, r14
mov r8d, 0x100
call sub.HID.DLL_HidD_GetFeature
test al, al
je 0x1400197b6
movzx edx, byte [rsp + 0x20]
cmp edx, 3
jne 0x1400197c7
movzx esi, word [rsp + 0x26]
lea eax, [rsi - 6]
movzx eax, ax
cmp eax, 0xf2
ja 0x1400197d0
lea rcx, [0x14014369c]
call fcn.140016430
lea edx, [rsi + 8]
lea rdi, [rsp + 0x20]
mov rcx, rdi
mov r8d, 1
call fcn.140023ac7
lea rcx, str.nddd
call fcn.140016430
movzx edx, byte [rsp + 0x28]
cmp edx, 0xaa
jne 0x1400197db
add sil, 0xfa
movzx ecx, byte [rsp + 0x2a]
lea r8d, [rcx - 1]
movzx ebx, sil
cmp r8d, ebx
jne 0x1400197fd
mov bpl, 1
xor eax, eax
xor edx, edx
xor dl, byte [rax + rdi + 0xa]
movzx eax, bpl
lea ebp, [rax + 1]
cmp cl, al
jae 0x1400196f6
movzx eax, byte [rcx + rdi + 0xb]
cmp dl, al
jne 0x140019808
mov byte [rcx + rdi + 0xc], 0xbb
movzx edx, byte [rsp + 0x2b]
lea ecx, [rdx + 1]
cmp cl, 0xb
ja case.0x140019741.7
lea rax, str.K___M_K_C_____E___
movzx ecx, cl
lea rbp, [0x1400198a8]
movsxd rcx, dword [rbp + rcx*4]
add rcx, rbp
jmp rcx
mov ebp, 1
test r12, r12
je 0x1400197e9
test r15, r15
je 0x1400197e9
mov qword [r12], 0
mov byte [r15], 0
test sil, sil
je 0x1400197e9
mov ecx, 0x40
mov rdx, rbx
call qword [sym.imp.KERNEL32.dll_LocalAlloc]
mov qword [r12], rax
test rax, rax
je 0x1400197e7
lea rdx, [rsp + 0x2c]
mov rcx, rax
mov r8, rbx
call fcn.1400eeb30
mov byte [r15], sil
jmp 0x1400197e9
lea rcx, [0x140143f40]
mov edx, esi
call fcn.140016430
jmp 0x1400197e9
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, [0x140143ef0]
jmp 0x1400197c3
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, str.B_aU_aU_aH_aU_a_a_a__a_aO_an_ac_aC_aX_a__ab_as_aA_ab_af_as_ar_au_ab_a_a__a7_a
mov edx, eax
jmp 0x1400197e2
lea rcx, [0x140143e50]
jmp 0x1400197e2
lea rcx, [0x140143e10]
mov edx, esi
jmp 0x1400197e2
lea rcx, str._i_i_ii_iIiIiRiIii_bi_riIii
call fcn.140016430
xor ebp, ebp
mov eax, ebp
add rsp, 0x120
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret
lea rcx, [0x140143d50]
mov edx, ebx
jmp 0x140019815
movzx edx, dl
lea rcx, [0x140143d00]
mov r8d, eax
call fcn.140016430
jmp 0x1400197e7
lea rax, str..M_M_M.MMmM_M_M_M8M_MM.M_MMM
jmp case.0x140019741.3
lea rax, [0x140143c10]
jmp case.0x140019741.3
cmp sil, 1
jne 0x140019887
movzx edx, byte [rsp + 0x2c]
lea eax, [rdx + 0x7f]
cmp al, 0x15
ja 0x140019896
movsx rax, al
lea rcx, [0x14011d630]
mov r8, qword [rcx + rax*8]
jmp 0x14001989d
lea rax, [0x140143ba0]
jmp case.0x140019741.3
lea rax, [0x140143bd0]
jmp case.0x140019741.3
lea rax, [0x140143a70]
jmp case.0x140019741.3
lea rax, [0x140143c20]
lea rcx, [0x140143c60]
mov r8, rax
call fcn.140016430
jmp 0x1400197e7
lea rcx, str._l_l_ll_lLlLlWlLl_bl_rl
mov edx, r8d
jmp 0x1400197e2
lea r8, [0x1401436a4]
lea rcx, str._d6d6dd6dDdDd_dDdd_vd_td_td
jmp 0x14001987d