Function at 0x18000b6f4
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x68
movsx r12d, word [0x18005a520]
mov rbp, rcx
mov byte [rsp + 0xb0], 0xcf
movsx eax, word [0x18005a508]
mov dword [rsp + 0x24], eax
mov eax, dword [0x18005a52c]
mov qword [rsp + 0x28], rax
movzx r14d, word [0x18005a508]
movzx eax, byte [0x180010082]
mov qword [rsp + 0xb0], rax
movzx eax, byte [0x180010082]
mov word [rsp + 0xb0], ax
movzx r15d, byte [0x180010083]
mov byte [rsp + 0xb0], 0xf5
mov rax, qword [0x180058570]
mov word [rsp + 0xc0], ax
mov eax, dword [0x18005a4fc]
mov dword [rsp + 0xc8], eax
movsx rax, byte [0x1800100a3]
mov qword [rsp + 0xb8], rax
mov rax, qword [0x18005a518]
mov r9d, dword [0x18005a524]
movzx eax, word [0x18005a520]
mov rdi, qword [0x18005a4e8]
mov dword [rsp + 0x20], 0xb2
mov word [rsp + 0xb8], ax
movzx eax, word [0x18005a4f0]
mov byte [rsp + 0xb8], al
movsx eax, byte [0x1800100a3]
mov word [rsp + 0xb8], ax
mov al, byte [0x18005a50c]
mov byte [rsp + 0xb8], al
mov byte [rsp + 0xb8], 0xfc
mov rax, qword [0x18005a500]
mov byte [rsp + 0xb8], 0xc0
mov eax, 0x29
mov word [rsp + 0xb8], ax
mov eax, dword [0x18005a530]
mov qword [rsp + 0xb8], rax
movzx eax, word [0x18005a520]
mov qword [rsp + 0xb8], 0x59
mov word [rsp + 0xb8], ax
call fcn.18000af0c
xor r13d, r13d
mov word [0x18005a4f0], ax
movzx eax, word [0x18005a4f0]
mov edx, r13d
cmp ax, 0x41
mov ecx, r13d
movzx eax, word [0x18005a4f0]
setne dl
test ax, ax
setne cl
cmp ecx, edx
ja 0x18000b936
test di, di
je 0x18000b8b0
movzx eax, word [0x180058564]
lea ecx, [r13 + 0x31]
mov al, byte [0x180010082]
sub cl, r14b
add cl, al
mov byte [0x180010082], cl
mov eax, dword [rsp + 0x20]
mov rcx, qword [rsp + 0x28]
movzx eax, di
not rcx
add rcx, rax
mov eax, r13d
sete al
mov word [0x18005a508], ax
jmp 0x18000b936
movabs rax, 0x785f14579c433
cmp qword [0x18005a4e8], rax
jne 0x18000b936
mov eax, dword [rsp + 0x24]
mov r8d, r13d
mov rcx, qword [0x18005a4e0]
not al
test rcx, rcx
movzx ecx, byte [0x18005a4f4]
cmove r8d, eax
cmp dword [0x18005a52c], r13d
sete dl
test r9d, r9d
sete al
or dl, al
movzx eax, r14b
imul ecx, eax
add dl, dil
not dl
movzx r14d, dl
movsx edx, word [rsp + 0xc0]
xor cl, r8b
movzx eax, cl
mov ecx, 0xf4
imul r14d, eax
mov rax, qword [0x18005a538]
sub qword [0x18005a510], rax
movsx ecx, cx
imul edx, ecx
mov word [rsp + 0xc0], dx
mov esi, r13d
call qword [sym.imp.USER32.dll_GetFocus]
test rax, rax
je 0x18000b94d
mov rcx, rax
call qword [sym.imp.USER32.dll_GetWindowDC]
mov ebx, 0x731129be
mov r11d, 1
cmp byte [rbp], r13b
je 0x18000b9c4
movzx r10d, word [0x18005a50c]
mov r8, rbp
movzx edx, word [0x180058580]
movzx eax, di
imul ecx, eax, 0xffffa23f
movsxd r9, ecx
lea eax, [r11 + r10]
mov qword [0x18005a538], r9
movzx ecx, ax
add esi, r11d
movzx eax, word [r8]
movzx edx, dx
imul edx, ecx
mov ecx, ebx
ror ecx, 8
add ecx, eax
mov r8d, esi
add r8, rbp
xor ebx, ecx
mov word [0x180058580], dx
mov dword [0x18005a530], 0x6a54
mov dword [rsp + 0xc8], r12d
cmp byte [r8], r13b
jne 0x18000b97c
mov byte [0x180010083], 0x1f
mov ecx, r13d
mov al, byte [0x180010082]
test al, al
movsx eax, word [0x18005a528]
sete cl
xor r14b, byte [0x1800100a2]
movsx edx, cx
imul edx, eax
mov rax, qword [0x18005a4d8]
mov rcx, qword [0x180058588]
movzx r8d, r14b
not cx
add r8w, dx
add r8w, r11w
not r8w
sub r8w, ax
movzx eax, byte [rsp + 0xb0]
add cx, r8w
add ax, cx
mov word [0x18005a520], ax
mov eax, 0xb7266926
mov qword [0x18005a510], rax
mov rax, qword [rsp + 0x28]
mov al, byte [0x180010083]
mov byte [0x180010083], 0x1f
movsx eax, byte [0x1800100af]
movzx edx, word [rsp + 0xc0]
movsx ecx, word [rsp + 0xc0]
sub dx, ax
movsx eax, dx
imul eax, ecx
mov word [rsp + 0xc0], ax
mov al, byte [0x180010083]
mov eax, dword [0x18005a4fc]
mov qword [rsp + 0xb0], rax
call qword [sym.imp.KERNEL32.dll_GetThreadUILanguage]
movzx eax, ax
mov qword [0x18005a500], rax
mov rax, qword [0x18005a500]
test rax, rax
je 0x18000badc
mov eax, dword [0x18000f420]
lea rcx, [rsp + 0x30]
vmovups ymm0, ymmword [str.RtlGetDeviceFamily]
mov dword [rsp + 0x50], eax
movzx eax, word [0x18000f424]
mov word [rsp + 0x54], ax
vmovups ymmword [rsp + 0x30], ymm0
vzeroupper
call qword [sym.imp.KERNEL32.dll_lstrlenW]
movsxd rcx, eax
mov qword [0x18005a4e8], rcx
jmp 0x18000bb0d
test r15d, r15d
je 0x18000bb0d
movzx ecx, byte [0x180010083]
mov edx, dword [0x18005a530]
mov dword [0x1804b1564], ecx
mov ecx, dword [rsp + 0xc8]
shr rdx, 2
shr ecx, 7
mov qword [0x18005a4e8], rdx
mov dword [rsp + 0x20], ecx
mov eax, ebx
add rsp, 0x68
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret