Function at 0x140160620
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x80
mov ecx, dword [0x140200944]
mov eax, 0x2aaaaaab
shl ecx, 4
imul ecx
mov r12d, edx
sar r12d, 4
mov eax, r12d
shr eax, 0x1f
add r12d, eax
mov eax, r12d
cdq
and edx, 3
lea r15d, [rdx + rax]
lea eax, [r12 + 0xf]
cdq
sar r15d, 2
and edx, 0xf
lea edi, [rdx + rax]
sar edi, 4
add edi, edi
mov ecx, edi
mov dword [rsp + 0xc8], edi
imul ecx, r12d
movsxd rbx, ecx
mov rcx, rbx
call fcn.1400ce030
mov r8, rbx
xor edx, edx
mov rcx, rax
mov r14, rax
call fcn.1401a6e60
test r12d, r12d
movsxd rbx, edi
movsxd r13, r12d
jle 0x1401606cb
mov rdi, r14
mov rsi, r13
test rbx, rbx
jle 0x1401606c2
mov r8, rbx
mov dl, 0xff
mov rcx, rdi
call fcn.1401a6e60
add rdi, rbx
sub rsi, 1
jne 0x1401606b0
mov eax, r12d
mov r11d, 1
cdq
sub eax, edx
sar eax, 1
mov ecx, eax
mov eax, r15d
cdq
sub eax, edx
sar eax, 1
test r15d, r15d
lea eax, [rax + rcx - 1]
mov dword [rsp + 0xd8], eax
mov edi, eax
lea eax, [rcx - 1]
mov dword [rsp + 0xd0], eax
cdqe
jle 0x14016075f
mov r10, rbx
mov rbp, rbx
mov rsi, r15
imul r10, rax
neg rbp
test r11d, r11d
movsxd r9, r11d
jle 0x14016074f
mov eax, edi
mov ecx, 7
cdq
and edx, 7
add eax, edx
mov r8d, eax
and eax, 7
sub eax, edx
sar r8d, 3
mov edx, 1
sub ecx, eax
movsxd rax, r8d
add rax, r10
shl dl, cl
add rax, r14
xor byte [rax], dl
add rax, rbx
sub r9, 1
jne 0x140160744
add r11d, 2
add r10, rbp
sub edi, 1
sub rsi, 1
jne 0x140160711
mov eax, dword [rsp + 0xc8]
lea rcx, [rsp + 0x20]
mov dword [rsp + 0x20], 0
mov dword [rsp + 0x24], r12d
mov dword [rsp + 0x28], r12d
mov word [rsp + 0x30], 1
mov dword [rsp + 0x2c], eax
mov qword [rsp + 0x38], r14
mov word [rsp + 0x32], 1
call qword [sym.imp.GDI32.dll_CreateBitmapIndirect]
mov rcx, r14
mov rsi, rax
mov qword [rsp + 0xc8], rax
call fcn.1400ce0b0
mov r11d, r12d
imul r11d, r12d
movsxd rbx, r11d
shl rbx, 2
mov rcx, rbx
call fcn.1400ce030
mov r8, rbx
xor edx, edx
mov rcx, rax
mov rbp, rax
call fcn.1401a6e60
mov ecx, send
call qword [sym.imp.USER32.dll_GetSysColor]
movsxd r9, dword [rsp + 0xd0]
movsxd r11, dword [rsp + 0xd8]
movzx ecx, ax
mov ebx, 1
shr cx, 8
movzx r10d, cl
movzx ecx, al
shr eax, 0x10
shl ecx, 8
movzx eax, al
or r10d, ecx
shl r10d, 8
or r10d, eax
or r10d, 0xff000000
test r15d, r15d
jle 0x140160874
mov rsi, r13
mov rdi, r15
neg rsi
imul r9, r13
nop
test ebx, ebx
movsxd rdx, ebx
jle 0x14016085c
lea rax, [r9 + r11]
lea r8, [r13*4]
lea rcx, [rbp + rax*4]
nop
nop
mov dword [rcx], r10d
add rcx, r8
sub rdx, 1
jne 0x140160850
add ebx, 2
sub r11, 1
add r9, rsi
sub rdi, 1
jne 0x140160830
mov rsi, qword [rsp + 0xc8]
lea eax, [r12*4]
lea rcx, [rsp + 0x40]
xor ebx, ebx
mov dword [rsp + 0x44], r12d
mov dword [rsp + 0x48], r12d
mov word [rsp + 0x50], 1
mov dword [rsp + 0x4c], eax
mov dword [rsp + 0x40], ebx
mov qword [rsp + 0x58], rbp
mov word [rsp + 0x52], 0x20
call qword [sym.imp.GDI32.dll_CreateBitmapIndirect]
mov rcx, rbp
mov rdi, rax
call fcn.1400ce0b0
lea rcx, [rsp + 0x60]
mov dword [rsp + 0x60], 1
mov dword [rsp + 0x64], ebx
mov dword [rsp + 0x68], ebx
mov qword [rsp + 0x70], rsi
mov qword [rsp + 0x78], rdi
call qword [sym.imp.USER32.dll_CreateIconIndirect]
mov rcx, rdi
mov rbx, rax
call qword [sym.imp.GDI32.dll_DeleteObject]
mov rcx, rsi
call qword [sym.imp.GDI32.dll_DeleteObject]
mov rax, rbx
mov rbx, qword [rsp + 0xc0]
add rsp, 0x80
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret