Function at 0x164c77ec0
Capabilities:
Encode data using xor

Disassembly:
mov r11, rsp
mov dword [r11 + 0x20], r9d
mov qword [r11 + 0x18], r8
mov qword [r11 + 0x10], rdx
mov qword [r11 + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r14
push r15
sub rsp, 0x30
mov rax, qword [0x164cb3008]
xor rax, rsp
mov qword [rsp + 0x28], rax
mov rax, rcx
mov esi, dword [rsp + 0x90]
movzx ecx, byte [rcx]
lea r12, [0x164cab510]
mov r15, rdx
mov r14, r8
movzx r10d, byte [rax + 1]
lea ebp, [rsi*4]
movzx r11d, byte [rax + 2]
movzx edi, byte [rax + 3]
mov eax, ecx
and cl, 0xf
shr eax, 4
movzx edx, cl
mov r8d, eax
mov ecx, edx
movzx eax, al
xor rcx, rax
movzx eax, dl
shl al, 3
movzx r9d, byte [rcx + r12 + 0x40]
mov ecx, edx
shr rcx, 1
or rcx, rax
mov eax, r8d
and ecx, 0xf
shl rax, 3
xor rax, r8
and eax, 0xf
xor rcx, rax
movzx r8d, byte [rcx + r12 + 0x50]
movzx eax, r8b
mov ecx, r8d
shr rcx, 1
xor r8, r9
shl al, 3
or rcx, rax
movzx eax, r9b
shl al, 3
xor rcx, rax
lea eax, [rsi*4 + 0x10]
xor rcx, r9
and ecx, 0xf
movzx edx, byte [rcx + r12 + 0x70]
movsxd rcx, eax
mov eax, r10d
shr eax, 4
and r10b, 0xf
shl dl, 4
add dl, byte [r8 + r12 + 0x60]
xor dl, byte [rcx + r14]
mov r8d, eax
movzx eax, al
movzx ebx, dl
movzx edx, r10b
mov ecx, edx
xor rcx, rax
movzx eax, dl
shl al, 3
movzx r9d, byte [rcx + r12 + 0x40]
mov ecx, edx
shr rcx, 1
or rcx, rax
mov eax, r8d
and ecx, 0xf
shl rax, 3
xor rax, r8
and eax, 0xf
xor rcx, rax
movzx edx, byte [rcx + r12 + 0x50]
movzx eax, dl
mov ecx, edx
shr rcx, 1
shl al, 3
or rcx, rax
movzx eax, r9b
shl al, 3
xor rcx, rax
xor rcx, r9
and ecx, 0xf
movzx ecx, byte [rcx + r12 + 0x70]
shl cl, 4
xor rdx, r9
movsxd rax, ebp
add cl, byte [rdx + r12 + 0x60]
xor cl, byte [rax + r14 + 0x11]
mov eax, r11d
movzx r10d, cl
and r11b, 0xf
shr eax, 4
mov r8d, eax
movzx eax, al
movzx edx, r11b
mov ecx, edx
xor rcx, rax
movzx eax, dl
shl al, 3
movzx r9d, byte [rcx + r12]
mov ecx, edx
shr rcx, 1
or rcx, rax
mov eax, r8d
and ecx, 0xf
shl rax, 3
xor rax, r8
and eax, 0xf
xor rcx, rax
movzx edx, byte [rcx + r12 + 0x10]
movzx eax, dl
mov ecx, edx
shr rcx, 1
shl al, 3
or rcx, rax
movzx eax, r9b
shl al, 3
xor rcx, rax
mov eax, r9d
xor rcx, r9
xor rax, rdx
and ecx, 0xf
movzx ecx, byte [rcx + r12 + 0x30]
shl cl, 4
add cl, byte [rax + r12 + 0x20]
movsxd rax, ebp
xor cl, byte [rax + r14 + 0x12]
mov eax, edi
movzx r11d, cl
and dil, 0xf
shr eax, 4
mov r8d, eax
movzx eax, al
movzx edx, dil
mov ecx, edx
xor rcx, rax
movzx eax, dl
shl al, 3
movzx r9d, byte [rcx + r12]
mov ecx, edx
shr rcx, 1
or rcx, rax
mov eax, r8d
and ecx, 0xf
shl rax, 3
xor rax, r8
and eax, 0xf
xor rcx, rax
movzx edx, byte [rcx + r12 + 0x10]
movzx eax, dl
mov ecx, edx
shr rcx, 1
shl al, 3
or rcx, rax
movzx eax, r9b
shl al, 3
xor rcx, rax
mov eax, r9d
xor rcx, r9
xor rax, rdx
and ecx, 0xf
movzx ecx, byte [rcx + r12 + 0x30]
shl cl, 4
add cl, byte [rax + r12 + 0x20]
movsxd rax, ebp
xor cl, byte [rax + r14 + 0x13]
mov eax, ebx
shr eax, 4
and bl, 0xf
mov r8d, eax
movzx eax, al
movzx edi, cl
movzx ecx, bl
xor rax, rcx
mov edx, ecx
shr rdx, 1
movzx r9d, byte [rax + r12]
movzx eax, cl
shl al, 3
or rdx, rax
mov eax, r8d
shl rax, 3
and edx, 0xf
xor rax, r8
and eax, 0xf
xor rdx, rax
movzx r8d, byte [rdx + r12 + 0x10]
movzx eax, r8b
mov ecx, r8d
shr rcx, 1
shl al, 3
or rcx, rax
movzx eax, r9b
shl al, 3
xor rcx, rax
mov eax, r9d
xor rcx, r9
xor rax, r8
and ecx, 0xf
movzx edx, byte [rcx + r12 + 0x30]
shl dl, 4
add dl, byte [rax + r12 + 0x20]
lea eax, [rsi*4 + 8]
movsxd rcx, eax
xor dl, byte [rcx + r14]
movzx eax, dl
mov ecx, eax
and al, 0xf
shr ecx, 4
mov r8d, ecx
movzx edx, al
movzx eax, cl
mov ecx, edx
xor rax, rdx
shr rcx, 1
movzx r9d, byte [rax + r12]
movzx eax, dl
shl al, 3
or rcx, rax
mov eax, r8d
and ecx, 0xf
shl rax, 3
xor rax, r8
and eax, 0xf
xor rcx, rax
movzx edx, byte [rcx + r12 + 0x10]
movzx eax, dl
mov ecx, edx
shr rcx, 1
xor rdx, r9
shl al, 3
or rcx, rax
movzx eax, r9b
shl al, 3
xor rcx, rax
movsxd rax, ebp
xor rcx, r9
and ecx, 0xf
movzx ecx, byte [rcx + r12 + 0x30]
shl cl, 4
add cl, byte [rdx + r12 + 0x20]
xor cl, byte [rax + r14]
movzx eax, cl
mov ecx, eax
shr ecx, 4
and al, 0xf
mov r8d, ecx
movzx edx, al
movzx eax, cl
mov ecx, edx
xor rax, rdx
shr rcx, 1
movzx r9d, byte [rax + r12 + 0x40]
movzx eax, dl
shl al, 3
or rcx, rax
mov eax, r8d
shl rax, 3
and ecx, 0xf
xor rax, r8
and eax, 0xf
xor rcx, rax
movzx edx, byte [rcx + r12 + 0x50]
movzx eax, dl
mov ecx, edx
shl al, 3
shr rcx, 1
or rcx, rax
movzx eax, r9b
shl al, 3
xor rcx, rax
mov eax, r9d
xor rax, rdx
xor rcx, r9
and ecx, 0xf
movzx ecx, byte [rcx + r12 + 0x70]
shl cl, 4
add cl, byte [rax + r12 + 0x60]
mov eax, r10d
shr eax, 4
and r10b, 0xf
mov r8d, eax
movzx eax, al
mov byte [rsp + 0x20], cl
movzx ecx, r10b
xor rax, rcx
mov edx, ecx
shr rdx, 1
movzx r9d, byte [rax + r12 + 0x40]
movzx eax, cl
shl al, 3
or rdx, rax
mov eax, r8d
shl rax, 3
and edx, 0xf
xor rax, r8
and eax, 0xf
xor rdx, rax
movzx r8d, byte [rdx + r12 + 0x50]
movzx eax, r8b
mov ecx, r8d
shr rcx, 1
xor r8, r9
shl al, 3
or rcx, rax
movzx eax, r9b
shl al, 3
xor rcx, rax
movsxd rax, ebp
xor rcx, r9
and ecx, 0xf
movzx ecx, byte [rcx + r12 + 0x70]
shl cl, 4
add cl, byte [r8 + r12 + 0x60]
xor cl, byte [rax + r14 + 9]
movzx eax, cl
mov ecx, eax
and al, 0xf
shr ecx, 4
movzx edx, al
movzx eax, cl
xor rax, rdx
mov r8d, ecx
mov ecx, edx
shr rcx, 1
movzx r9d, byte [rax + r12]
movzx eax, dl
shl al, 3
or rcx, rax
mov eax, r8d
and ecx, 0xf
shl rax, 3
xor rax, r8
and eax, 0xf
xor rcx, rax
movzx edx, byte [rcx + r12 + 0x10]
movzx eax, dl
mov ecx, edx
shr rcx, 1
xor rdx, r9
shl al, 3
or rcx, rax
movzx eax, r9b
shl al, 3
xor rcx, rax
movsxd rax, ebp
xor rcx, r9
and ecx, 0xf
movzx ecx, byte [rcx + r12 + 0x30]
shl cl, 4
add cl, byte [rdx + r12 + 0x20]
xor cl, byte [rax + r14 + 1]
movzx eax, cl
mov edx, eax
and al, 0xf
movzx r8d, al
shr edx, 4
mov ecx, r8d
movzx eax, dl
xor rcx, rax
mov r9d, edx
movzx eax, r8b
shl al, 3
movzx r10d, byte [rcx + r12]
mov ecx, r8d
shr rcx, 1
or rcx, rax
mov eax, edx
and ecx, 0xf
shl rax, 3
xor rax, r9
and eax, 0xf
xor rcx, rax
movzx edx, byte [rcx + r12 + 0x10]
movzx eax, dl
mov ecx, edx
shr rcx, 1
xor rdx, r10
shl al, 3
or rcx, rax
movzx eax, r10b
shl al, 3
xor rcx, rax
mov eax, r11d
xor rcx, r10
shr eax, 4
and ecx, 0xf
mov r8d, eax
movzx eax, al
and r11b, 0xf
movzx ecx, byte [rcx + r12 + 0x30]
shl cl, 4
add cl, byte [rdx + r12 + 0x20]
mov byte [rsp + 0x21], cl
movzx edx, r11b
mov ecx, edx
xor rcx, rax
movzx eax, dl
shl al, 3
movzx r9d, byte [rcx + r12]
mov ecx, edx
shr rcx, 1
or rcx, rax
mov eax, r8d
shl rax, 3
and ecx, 0xf
xor rax, r8
and eax, 0xf
xor rcx, rax
movzx edx, byte [rcx + r12 + 0x10]
movzx eax, dl
mov ecx, edx
shr rcx, 1
shl al, 3
or rcx, rax
movzx eax, r9b
shl al, 3
xor rcx, rax
mov eax, r9d
xor rax, rdx
xor rcx, r9
and ecx, 0xf
movzx ecx, byte [rcx + r12 + 0x30]
shl cl, 4
add cl, byte [rax + r12 + 0x20]
movsxd rax, ebp
xor cl, byte [rax + r14 + 0xa]
movzx eax, cl
mov edx, eax
and al, 0xf
movzx r8d, al
shr edx, 4
mov ecx, r8d
movzx eax, dl
xor rcx, rax
mov r9d, edx
movzx eax, r8b
shl al, 3
movzx r10d, byte [rcx + r12 + 0x40]
mov ecx, r8d
shr rcx, 1
or rcx, rax
mov eax, edx
and ecx, 0xf
shl rax, 3
xor rax, r9
and eax, 0xf
xor rcx, rax
movzx edx, byte [rcx + r12 + 0x50]
movzx eax, dl
mov ecx, edx
shr rcx, 1
xor rdx, r10
shl al, 3
or rcx, rax
movzx eax, r10b
shl al, 3
xor rcx, rax
movsxd rax, ebp
xor rcx, r10
and ecx, 0xf
movzx ecx, byte [rcx + r12 + 0x70]
shl cl, 4
add cl, byte [rdx + r12 + 0x60]
xor cl, byte [rax + r14 + 2]
movzx eax, cl
mov edx, eax
and al, 0xf
movzx r8d, al
shr edx, 4
mov ecx, r8d
movzx eax, dl
xor rcx, rax
mov r9d, edx
movzx eax, r8b
shl al, 3
movzx r10d, byte [rcx + r12 + 0x40]
mov ecx, r8d
shr rcx, 1
or rcx, rax
mov eax, edx
shl rax, 3
and ecx, 0xf
xor rax, r9
and eax, 0xf
xor rcx, rax
movzx edx, byte [rcx + r12 + 0x50]
mov ecx, edx
shr rcx, 1
movzx eax, dl
shl al, 3
xor rdx, r10
or rcx, rax
movzx eax, r10b
shl al, 3
xor rcx, rax
mov eax, edi
xor rcx, r10
shr eax, 4
and ecx, 0xf
mov r8d, eax
movzx eax, al
and dil, 0xf
movzx ecx, byte [rcx + r12 + 0x70]
shl cl, 4
add cl, byte [rdx + r12 + 0x60]
mov byte [rsp + 0x22], cl
movzx edx, dil
mov ecx, edx
xor rcx, rax
movzx eax, dl
shl al, 3
movzx r9d, byte [rcx + r12 + 0x40]
mov ecx, edx
shr rcx, 1
or rcx, rax
mov eax, r8d
and ecx, 0xf
shl rax, 3
xor rax, r8
and eax, 0xf
xor rcx, rax
movzx edx, byte [rcx + r12 + 0x50]
movzx eax, dl
mov ecx, edx
shr rcx, 1
xor rdx, r9
shl al, 3
or rcx, rax
movzx eax, r9b
shl al, 3
xor rcx, rax
movsxd rax, ebp
xor rcx, r9
and ecx, 0xf
movzx ecx, byte [rcx + r12 + 0x70]
shl cl, 4
add cl, byte [rdx + r12 + 0x60]
xor cl, byte [rax + r14 + 0xb]
movzx eax, cl
mov edx, eax
and al, 0xf
movzx r8d, al
shr edx, 4
mov ecx, r8d
movzx eax, dl
xor rcx, rax
mov r9d, edx
movzx eax, r8b
shl al, 3
movzx r10d, byte [rcx + r12 + 0x40]
mov ecx, r8d
shr rcx, 1
or rcx, rax
mov eax, edx
shl rax, 3
and ecx, 0xf
xor rax, r9
and eax, 0xf
xor rcx, rax
movzx edx, byte [rcx + r12 + 0x50]
movzx eax, dl
mov ecx, edx
shl al, 3
shr rcx, 1
or rcx, rax
movzx eax, r10b
shl al, 3
xor rcx, rax
xor rcx, r10
movsxd rax, ebp
and ecx, 0xf
lea rdi, [rsp + 0x20]
xor rdx, r10
movzx ecx, byte [rcx + r12 + 0x70]
shl cl, 4
add cl, byte [rdx + r12 + 0x60]
xor cl, byte [rax + r14 + 3]
movzx eax, cl
mov edx, eax
and al, 0xf
movzx r8d, al
shr edx, 4
mov ecx, r8d
movzx eax, dl
xor rcx, rax
mov r9d, edx
movzx eax, r8b
shl al, 3
movzx r10d, byte [rcx + r12]
mov ecx, r8d
shr rcx, 1
or rcx, rax
mov eax, edx
and ecx, 0xf
shl rax, 3
xor rax, r9
and eax, 0xf
xor rcx, rax
movzx edx, byte [rcx + r12 + 0x10]
movzx eax, dl
mov ecx, edx
shr rcx, 1
shl al, 3
or rcx, rax
movzx eax, r10b
shl al, 3
xor rcx, rax
mov eax, r10d
xor rcx, r10
xor rax, rdx
and ecx, 0xf
movzx ecx, byte [rcx + r12 + 0x30]
shl cl, 4
add cl, byte [rax + r12 + 0x20]
xor ebx, ebx
mov byte [rsp + 0x23], cl
mov esi, ebx
movzx ecx, byte [rdi]
mov edx, ebx
call fcn.164c77e00
xor esi, eax
lea rdi, [rdi + 1]
inc ebx
cmp ebx, 4
jb 0x164c78706
mov dword [r15], esi
mov rcx, qword [rsp + 0x28]
xor rcx, rsp
call fcn.164c8ef00
add rsp, 0x30
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret