Function at 0x65016290
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], r9
push rsi
push rdi
push r12
push r13
push r14
push r15
mov rbp, qword [rcx + 8]
movzx eax, byte [r8 + 2]
movzx ebx, byte [r8 + 3]
movzx r13d, byte [r8 + 7]
movzx r14d, byte [r8 + 0xb]
shl ebx, 8
or ebx, eax
movzx eax, byte [r8 + 1]
shl r13d, 8
mov r15, r9
movzx r9d, byte [r8 + 0xf]
shl r14d, 8
shl r9d, 8
shl ebx, 8
add rbp, 0x10
or ebx, eax
movzx eax, byte [r8]
lea r12, [0x65000000]
shl ebx, 8
or ebx, eax
movzx eax, byte [r8 + 6]
xor ebx, dword [rbp - 0x10]
or r13d, eax
movzx eax, byte [r8 + 5]
shl r13d, 8
or r13d, eax
movzx eax, byte [r8 + 4]
shl r13d, 8
or r13d, eax
movzx eax, byte [r8 + 0xa]
xor r13d, dword [rbp - 0xc]
or r14d, eax
movzx eax, byte [r8 + 9]
shl r14d, 8
or r14d, eax
movzx eax, byte [r8 + 8]
shl r14d, 8
or r14d, eax
movzx eax, byte [r8 + 0xe]
xor r14d, dword [rbp - 8]
or r9d, eax
movzx eax, byte [r8 + 0xd]
shl r9d, 8
or r9d, eax
movzx eax, byte [r8 + 0xc]
shl r9d, 8
or r9d, eax
mov eax, dword [rcx]
xor r9d, dword [rbp - 4]
sar eax, 1
sub eax, 1
test edx, edx
jne 0x65016814
test eax, eax
jle 0x650165b4
mov r15d, eax
mov edi, ebx
mov esi, r9d
mov eax, r14d
shr rax, 0x10
mov r10d, r13d
mov r11d, r14d
movzx edx, al
mov eax, r9d
shr r10, 0x10
mov ebx, dword [r12 + rdx*4 + 0x46030]
shr rax, 8
shr r11, 8
movzx ecx, al
mov eax, r13d
xor ebx, dword [r12 + rcx*4 + 0x46430]
shr rax, 0x18
xor ebx, dword [r12 + rax*4 + 0x45c30]
movzx eax, dil
xor ebx, dword [r12 + rax*4 + 0x46830]
mov rax, rdi
xor ebx, dword [rbp]
shr rax, 8
movzx edx, al
mov eax, r9d
mov r9d, dword [r12 + rdx*4 + 0x46430]
shr rax, 0x10
movzx ecx, al
mov eax, r14d
xor r9d, dword [r12 + rcx*4 + 0x46030]
shr rax, 0x18
xor r9d, dword [r12 + rax*4 + 0x45c30]
movzx eax, r13b
xor r9d, dword [r12 + rax*4 + 0x46830]
mov eax, r13d
xor r9d, dword [rbp + 4]
shr rax, 8
movzx edx, al
mov rax, rdi
shr rdi, 0x18
mov r8d, dword [r12 + rdx*4 + 0x46430]
shr rax, 0x10
movzx ecx, al
mov rax, rsi
xor r8d, dword [r12 + rcx*4 + 0x46030]
shr rax, 0x18
movzx ecx, r10b
xor r8d, dword [r12 + rax*4 + 0x45c30]
mov edx, dword [r12 + rcx*4 + 0x46030]
movzx eax, r14b
xor r8d, dword [r12 + rax*4 + 0x46830]
movzx eax, r11b
mov r11d, ebx
xor edx, dword [r12 + rax*4 + 0x46430]
xor r8d, dword [rbp + 8]
movzx eax, sil
xor edx, dword [r12 + rdi*4 + 0x45c30]
mov r10d, r8d
mov r8d, r9d
xor edx, dword [r12 + rax*4 + 0x46830]
mov rax, r10
xor edx, dword [rbp + 0xc]
shr rax, 0x10
mov edi, edx
movzx edx, al
mov ebx, dword [r12 + rdx*4 + 0x46030]
mov rax, rdi
shr rax, 8
movzx ecx, al
mov eax, r9d
xor ebx, dword [r12 + rcx*4 + 0x46430]
shr rax, 0x18
xor ebx, dword [r12 + rax*4 + 0x45c30]
movzx eax, r11b
xor ebx, dword [r12 + rax*4 + 0x46830]
mov rax, r11
xor ebx, dword [rbp + 0x10]
shr rax, 8
movzx edx, al
mov rax, rdi
shr rax, 0x10
movzx ecx, al
mov r13d, dword [r12 + rdx*4 + 0x46430]
mov rax, r10
shr r8, 0x10
xor r13d, dword [r12 + rcx*4 + 0x46030]
shr rax, 0x18
sub r15d, 1
xor r13d, dword [r12 + rax*4 + 0x45c30]
movzx eax, r9b
add rbp, 0x20
xor r13d, dword [r12 + rax*4 + 0x46830]
mov eax, r9d
xor r13d, dword [rbp - 0xc]
shr rax, 8
movzx edx, al
mov rax, r11
shr r11, 0x18
mov r14d, dword [r12 + rdx*4 + 0x46430]
shr rax, 0x10
movzx ecx, al
mov rax, rdi
xor r14d, dword [r12 + rcx*4 + 0x46030]
shr rax, 0x18
movzx ecx, r8b
xor r14d, dword [r12 + rax*4 + 0x45c30]
mov r9d, dword [r12 + rcx*4 + 0x46030]
movzx eax, r10b
xor r14d, dword [r12 + rax*4 + 0x46830]
shr r10, 8
xor r14d, dword [rbp - 8]
movzx eax, r10b
xor r9d, dword [r12 + rax*4 + 0x46430]
movzx eax, dil
xor r9d, dword [r12 + r11*4 + 0x45c30]
xor r9d, dword [r12 + rax*4 + 0x46830]
xor r9d, dword [rbp - 4]
test r15d, r15d
jg 0x65016381
mov r15, qword [rsp + 0x50]
mov esi, r9d
mov eax, r14d
mov r10d, r13d
shr rax, 0x10
shr r10, 0x10
mov r11d, r14d
movzx edx, al
mov eax, r9d
shr r11, 8
mov edi, dword [r12 + rdx*4 + 0x46030]
shr rax, 8
movzx ecx, al
mov eax, r13d
xor edi, dword [r12 + rcx*4 + 0x46430]
shr rax, 0x18
xor edi, dword [r12 + rax*4 + 0x45c30]
movzx eax, bl
xor edi, dword [r12 + rax*4 + 0x46830]
mov rax, rbx
xor edi, dword [rbp]
shr rax, 8
movzx edx, al
mov eax, r9d
mov r9d, dword [r12 + rdx*4 + 0x46430]
shr rax, 0x10
movzx ecx, al
mov eax, r14d
xor r9d, dword [r12 + rcx*4 + 0x46030]
shr rax, 0x18
xor r9d, dword [r12 + rax*4 + 0x45c30]
movzx eax, r13b
xor r9d, dword [r12 + rax*4 + 0x46830]
mov eax, r13d
xor r9d, dword [rbp + 4]
shr rax, 8
movzx edx, al
mov rax, rbx
shr rbx, 0x18
mov r8d, dword [r12 + rdx*4 + 0x46430]
shr rax, 0x10
movzx ecx, al
mov rax, rsi
xor r8d, dword [r12 + rcx*4 + 0x46030]
shr rax, 0x18
movzx ecx, r10b
xor r8d, dword [r12 + rax*4 + 0x45c30]
mov edx, dword [r12 + rcx*4 + 0x46030]
movzx eax, r14b
xor r8d, dword [r12 + rax*4 + 0x46830]
movzx eax, r11b
xor edx, dword [r12 + rax*4 + 0x46430]
xor r8d, dword [rbp + 8]
movzx eax, sil
xor edx, dword [r12 + rbx*4 + 0x45c30]
mov r10d, r8d
mov r8d, r9d
xor edx, dword [r12 + rax*4 + 0x46830]
mov rax, r8
xor edx, dword [rbp + 0xc]
shr rax, 0x18
movzx ebx, byte [rax + r12 + 0x47c30]
mov r9d, edx
mov rax, r10
shr rax, 0x10
shl ebx, 8
mov edx, edi
movzx ecx, al
movzx eax, byte [rcx + r12 + 0x47c30]
xor ebx, eax
mov rax, r9
shr rax, 8
shl ebx, 8
movzx ecx, al
movzx eax, byte [rcx + r12 + 0x47c30]
xor ebx, eax
movzx eax, dil
movzx eax, byte [rax + r12 + 0x47c30]
shl ebx, 8
xor ebx, eax
mov rax, r9
xor ebx, dword [rbp + 0x10]
shr rax, 0x10
movzx ecx, al
mov rax, r10
movzx edi, byte [rcx + r12 + 0x47c30]
shr rax, 0x18
movzx eax, byte [rax + r12 + 0x47c30]
shl eax, 8
xor edi, eax
mov rax, rdx
shr rax, 8
shl edi, 8
movzx ecx, al
movzx eax, byte [rcx + r12 + 0x47c30]
xor edi, eax
movzx eax, r8b
movzx eax, byte [rax + r12 + 0x47c30]
shl edi, 8
xor edi, eax
mov rax, rdx
shr rdx, 0x18
xor edi, dword [rbp + 0x14]
shr rax, 0x10
movzx ecx, al
mov rax, r9
movzx esi, byte [rcx + r12 + 0x47c30]
shr rax, 0x18
movzx eax, byte [rax + r12 + 0x47c30]
shl eax, 8
xor esi, eax
mov rax, r8
shr r8, 0x10
shr rax, 8
shl esi, 8
movzx ecx, al
movzx eax, byte [rcx + r12 + 0x47c30]
xor esi, eax
movzx eax, r10b
shr r10, 8
movzx eax, byte [rax + r12 + 0x47c30]
shl esi, 8
xor esi, eax
movzx eax, r8b
movzx r13d, byte [rax + r12 + 0x47c30]
movzx eax, byte [rdx + r12 + 0x47c30]
shl eax, 8
xor r13d, eax
movzx eax, r10b
movzx eax, byte [rax + r12 + 0x47c30]
shl r13d, 8
xor r13d, eax
movzx eax, r9b
movzx eax, byte [rax + r12 + 0x47c30]
jmp 0x65016cab
test eax, eax
jle 0x65016a50
mov r15d, eax
nop
mov r11d, ebx
mov ebx, r9d
mov eax, r13d
shr rax, 8
mov r10d, r13d
mov esi, r14d
movzx edx, al
shr r10, 0x10
mov eax, r14d
mov edi, dword [r12 + rdx*4 + 0x47430]
shr rax, 0x10
shr rsi, 0x18
movzx ecx, al
mov eax, r9d
xor edi, dword [r12 + rcx*4 + 0x47030]
shr rax, 0x18
xor edi, dword [r12 + rax*4 + 0x46c30]
movzx eax, r11b
xor edi, dword [r12 + rax*4 + 0x47830]
mov eax, r14d
xor edi, dword [rbp]
shr rax, 8
movzx edx, al
mov eax, r9d
mov r9d, dword [r12 + rdx*4 + 0x47430]
shr rax, 0x10
movzx ecx, al
mov rax, r11
xor r9d, dword [r12 + rcx*4 + 0x47030]
shr rax, 0x18
xor r9d, dword [r12 + rax*4 + 0x46c30]
movzx eax, r13b
xor r9d, dword [r12 + rax*4 + 0x47830]
mov rax, r11
shr r11, 8
xor r9d, dword [rbp + 4]
shr rax, 0x10
movzx edx, al
mov rax, rbx
mov r8d, dword [r12 + rdx*4 + 0x47030]
shr rax, 8
movzx ecx, al
mov eax, r13d
xor r8d, dword [r12 + rcx*4 + 0x47430]
shr rax, 0x18
movzx ecx, r10b
xor r8d, dword [r12 + rax*4 + 0x46c30]
mov r10d, dword [r12 + rcx*4 + 0x47030]
movzx eax, r14b
xor r8d, dword [r12 + rax*4 + 0x47830]
movzx eax, r11b
xor r10d, dword [r12 + rax*4 + 0x47430]
xor r8d, dword [rbp + 8]
movzx eax, bl
xor r10d, dword [r12 + rsi*4 + 0x46c30]
mov r11d, r8d
mov r8d, r9d
xor r10d, dword [r12 + rax*4 + 0x47830]
mov rax, r8
mov r9d, edi
xor r10d, dword [rbp + 0xc]
shr rax, 8
movzx edx, al
mov rax, r11
mov ebx, dword [r12 + rdx*4 + 0x47430]
shr rax, 0x10
movzx ecx, al
mov rax, r10
xor ebx, dword [r12 + rcx*4 + 0x47030]
shr rax, 0x18
xor ebx, dword [r12 + rax*4 + 0x46c30]
movzx eax, dil
xor ebx, dword [r12 + rax*4 + 0x47830]
mov rax, r11
xor ebx, dword [rbp + 0x10]
shr rax, 8
movzx edx, al
mov rax, r10
mov r13d, dword [r12 + rdx*4 + 0x47430]
shr rax, 0x10
movzx ecx, al
xor r13d, dword [r12 + rcx*4 + 0x47030]
shr r9, 8
mov eax, edi
shr rax, 0x18
sub r15d, 1
add rbp, 0x20
xor r13d, dword [r12 + rax*4 + 0x46c30]
movzx eax, r8b
xor r13d, dword [r12 + rax*4 + 0x47830]
mov eax, edi
xor r13d, dword [rbp - 0xc]
shr rax, 0x10
movzx edx, al
mov rax, r10
mov r14d, dword [r12 + rdx*4 + 0x47030]
shr rax, 8
movzx ecx, al
mov rax, r8
shr r8, 0x10
xor r14d, dword [r12 + rcx*4 + 0x47430]
shr rax, 0x18
movzx ecx, r8b
xor r14d, dword [r12 + rax*4 + 0x46c30]
movzx eax, r11b
shr r11, 0x18
xor r14d, dword [r12 + rax*4 + 0x47830]
movzx eax, r9b
mov r9d, dword [r12 + rcx*4 + 0x47030]
xor r9d, dword [r12 + rax*4 + 0x47430]
xor r14d, dword [rbp - 8]
movzx eax, r10b
xor r9d, dword [r12 + r11*4 + 0x46c30]
xor r9d, dword [r12 + rax*4 + 0x47830]
xor r9d, dword [rbp - 4]
test r15d, r15d
jg 0x65016820
mov r15, qword [rsp + 0x50]
mov r11d, ebx
mov ebx, r9d
mov eax, r13d
shr rax, 8
mov r10d, r13d
mov esi, r14d
movzx edx, al
mov eax, r14d
shr r10, 0x10
mov edi, dword [r12 + rdx*4 + 0x47430]
shr rax, 0x10
shr rsi, 0x18
movzx ecx, al
mov eax, r9d
xor edi, dword [r12 + rcx*4 + 0x47030]
shr rax, 0x18
xor edi, dword [r12 + rax*4 + 0x46c30]
movzx eax, r11b
xor edi, dword [r12 + rax*4 + 0x47830]
mov eax, r14d
xor edi, dword [rbp]
shr rax, 8
movzx edx, al
mov eax, r9d
mov r9d, dword [r12 + rdx*4 + 0x47430]
shr rax, 0x10
movzx ecx, al
mov rax, r11
xor r9d, dword [r12 + rcx*4 + 0x47030]
shr rax, 0x18
xor r9d, dword [r12 + rax*4 + 0x46c30]
movzx eax, r13b
xor r9d, dword [r12 + rax*4 + 0x47830]
mov rax, r11
shr r11, 8
xor r9d, dword [rbp + 4]
shr rax, 0x10
movzx edx, al
mov rax, rbx
mov r8d, dword [r12 + rdx*4 + 0x47030]
shr rax, 8
mov edx, r9d
movzx ecx, al
mov eax, r13d
xor r8d, dword [r12 + rcx*4 + 0x47430]
shr rax, 0x18
movzx ecx, r10b
xor r8d, dword [r12 + rax*4 + 0x46c30]
movzx eax, r14b
xor r8d, dword [r12 + rax*4 + 0x47830]
movzx eax, r11b
mov r11d, dword [r12 + rcx*4 + 0x47030]
xor r11d, dword [r12 + rax*4 + 0x47430]
xor r8d, dword [rbp + 8]
movzx eax, bl
xor r11d, dword [r12 + rsi*4 + 0x46c30]
mov r10d, r8d
mov r8d, edi
xor r11d, dword [r12 + rax*4 + 0x47830]
mov rax, r10
xor r11d, dword [rbp + 0xc]
shr rax, 0x10
movzx ecx, al
mov rax, r11
movzx ebx, byte [rcx + r12 + 0x45b30]
shr rax, 0x18
movzx eax, byte [rax + r12 + 0x45b30]
shl eax, 8
xor ebx, eax
mov eax, r9d
shr rax, 8
shl ebx, 8
movzx ecx, al
movzx eax, byte [rcx + r12 + 0x45b30]
xor ebx, eax
movzx eax, dil
movzx eax, byte [rax + r12 + 0x45b30]
shl ebx, 8
xor ebx, eax
mov eax, edi
xor ebx, dword [rbp + 0x10]
shr rax, 0x18
shr rdx, 0x10
movzx edi, byte [rax + r12 + 0x45b30]
mov rax, r11
shr rax, 0x10
shl edi, 8
movzx ecx, al
movzx eax, byte [rcx + r12 + 0x45b30]
xor edi, eax
mov rax, r10
shr rax, 8
shl edi, 8
movzx ecx, al
movzx eax, byte [rcx + r12 + 0x45b30]
xor edi, eax
movzx eax, r9b
movzx eax, byte [rax + r12 + 0x45b30]
shl edi, 8
xor edi, eax
mov rax, r8
shr r8, 8
xor edi, dword [rbp + 0x14]
shr rax, 0x10
movzx ecx, al
mov eax, r9d
movzx esi, byte [rcx + r12 + 0x45b30]
shr rax, 0x18
movzx eax, byte [rax + r12 + 0x45b30]
shl eax, 8
xor esi, eax
mov rax, r11
shr rax, 8
shl esi, 8
movzx ecx, al
movzx eax, byte [rcx + r12 + 0x45b30]
xor esi, eax
movzx eax, r10b
shr r10, 0x18
movzx eax, byte [rax + r12 + 0x45b30]
shl esi, 8
xor esi, eax
movzx eax, dl
movzx r13d, byte [rax + r12 + 0x45b30]
movzx eax, byte [r10 + r12 + 0x45b30]
shl eax, 8
xor r13d, eax
movzx eax, r8b
movzx eax, byte [rax + r12 + 0x45b30]
shl r13d, 8
xor r13d, eax
movzx eax, r11b
movzx eax, byte [rax + r12 + 0x45b30]
xor esi, dword [rbp + 0x18]
shl r13d, 8
xor r13d, eax
mov eax, ebx
xor r13d, dword [rbp + 0x1c]
mov rbp, qword [rsp + 0x48]
shr eax, 8
mov byte [r15 + 1], al
mov eax, ebx
mov byte [r15], bl
shr eax, 0x10
shr ebx, 0x18
mov byte [r15 + 4], dil
mov byte [r15 + 2], al
mov eax, edi
mov byte [r15 + 8], sil
shr eax, 8
mov byte [r15 + 0xc], r13b
mov byte [r15 + 3], bl
mov rbx, qword [rsp + 0x38]
mov byte [r15 + 5], al
mov eax, edi
shr eax, 0x10
shr edi, 0x18
mov byte [r15 + 6], al
mov eax, esi
mov byte [r15 + 7], dil
shr eax, 8
mov byte [r15 + 9], al
mov eax, esi
shr esi, 0x18
shr eax, 0x10
mov byte [r15 + 0xb], sil
mov byte [r15 + 0xa], al
mov eax, r13d
shr eax, 8
mov byte [r15 + 0xd], al
mov eax, r13d
shr eax, 0x10
shr r13d, 0x18
mov byte [r15 + 0xf], r13b
mov byte [r15 + 0xe], al
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
ret