Function at 0x180004660
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
mov qword [rsp + 0x20], r14
mov r10d, dword [rdx]
mov r14, r8
mov eax, dword [rdx + 4]
mov rbx, rcx
rol r10d, 4
mov edi, 8
mov edx, r10d
xor edx, eax
and edx, 0xf0f0f0f0
xor r10d, edx
xor edx, eax
rol edx, 0x14
mov r8d, r10d
xor r8d, edx
and r8d, 0xfff0000f
xor r10d, r8d
xor r8d, edx
rol r8d, 0xe
mov ecx, r10d
xor ecx, r8d
and ecx, 0x33333333
xor r8d, ecx
xor ecx, r10d
rol ecx, 0x16
mov eax, ecx
xor eax, r8d
and eax, 0x3fc03fc
xor r8d, eax
xor eax, ecx
rol eax, 9
mov r11d, eax
xor r11d, r8d
and r11d, 0xaaaaaaaa
xor eax, r11d
xor r11d, r8d
rol r11d, 1
test r9d, r9d
je 0x18000487a
lea rsi, [rbx + 4]
lea rbx, [0x18002ccd0]
nop dword [rax]
nop dword [rax + rax]
mov edx, dword [rsi - 4]
lea rsi, [rsi + 0x10]
mov r10d, eax
xor edx, eax
xor r10d, dword [rsi - 0x10]
ror r10d, 4
mov r9d, edx
shr rdx, 0x18
mov ecx, r9d
shr rcx, 0x10
and edx, 0xfc
and ecx, 0xfc
mov r8d, dword [rdx + rbx + 0x600]
xor r8d, dword [rcx + rbx + 0x400]
mov ecx, r9d
mov edx, dword [rsi - 0xc]
and r9d, 0xfc
shr rcx, 8
and ecx, 0xfc
xor r8d, dword [rcx + rbx + 0x200]
mov ecx, r10d
shr rcx, 0x18
and ecx, 0xfc
xor r8d, dword [rcx + rbx + 0x700]
mov ecx, r10d
shr rcx, 0x10
and ecx, 0xfc
xor r8d, dword [rcx + rbx + 0x500]
mov ecx, r10d
shr rcx, 8
and r10d, 0xfc
and ecx, 0xfc
xor r8d, dword [rcx + rbx + 0x300]
xor r8d, dword [r9 + rbx]
xor r8d, dword [r10 + rbx + 0x100]
mov r10d, dword [rsi - 8]
xor r11d, r8d
xor r10d, r11d
xor edx, r11d
mov r9d, edx
ror r10d, 4
mov ecx, r9d
shr rcx, 0x10
and ecx, 0xfc
shr rdx, 0x18
and edx, 0xfc
mov r8d, dword [rdx + rbx + 0x600]
xor r8d, dword [rcx + rbx + 0x400]
mov ecx, r9d
shr rcx, 8
and r9d, 0xfc
and ecx, 0xfc
xor r8d, dword [rcx + rbx + 0x200]
mov ecx, r10d
shr rcx, 0x18
and ecx, 0xfc
xor r8d, dword [rcx + rbx + 0x700]
mov ecx, r10d
shr rcx, 0x10
and ecx, 0xfc
xor r8d, dword [rcx + rbx + 0x500]
mov ecx, r10d
shr rcx, 8
and r10d, 0xfc
and ecx, 0xfc
xor r8d, dword [rcx + rbx + 0x300]
xor r8d, dword [r9 + rbx]
xor r8d, dword [r10 + rbx + 0x100]
xor eax, r8d
sub rdi, 1
jne 0x180004710
jmp 0x1800049f4
lea rsi, [rbx + 0x78]
lea rbx, [0x18002ccd0]
nop word [rax + rax]
mov r10d, dword [rsi + 4]
mov edx, dword [rsi]
lea rsi, [rsi - 0x10]
xor r10d, eax
xor edx, eax
ror r10d, 4
mov r9d, edx
shr rdx, 0x18
mov ecx, r9d
shr rcx, 0x10
and edx, 0xfc
and ecx, 0xfc
mov r8d, dword [rdx + rbx + 0x600]
xor r8d, dword [rcx + rbx + 0x400]
mov ecx, r9d
mov edx, dword [rsi + 8]
and r9d, 0xfc
shr rcx, 8
and ecx, 0xfc
xor r8d, dword [rcx + rbx + 0x200]
mov ecx, r10d
shr rcx, 0x18
and ecx, 0xfc
xor r8d, dword [rcx + rbx + 0x700]
mov ecx, r10d
shr rcx, 0x10
and ecx, 0xfc
xor r8d, dword [rcx + rbx + 0x500]
mov ecx, r10d
shr rcx, 8
and r10d, 0xfc
and ecx, 0xfc
xor r8d, dword [rcx + rbx + 0x300]
xor r8d, dword [r9 + rbx]
xor r8d, dword [r10 + rbx + 0x100]
mov r10d, dword [rsi + 0xc]
xor r11d, r8d
xor r10d, r11d
xor edx, r11d
mov r9d, edx
ror r10d, 4
mov ecx, r9d
shr rcx, 0x10
and ecx, 0xfc
shr rdx, 0x18
and edx, 0xfc
mov r8d, dword [rdx + rbx + 0x600]
xor r8d, dword [rcx + rbx + 0x400]
mov ecx, r9d
shr rcx, 8
and r9d, 0xfc
and ecx, 0xfc
xor r8d, dword [rcx + rbx + 0x200]
mov ecx, r10d
shr rcx, 0x18
and ecx, 0xfc
xor r8d, dword [rcx + rbx + 0x700]
mov ecx, r10d
shr rcx, 0x10
and ecx, 0xfc
xor r8d, dword [rcx + rbx + 0x500]
mov ecx, r10d
shr rcx, 8
and r10d, 0xfc
and ecx, 0xfc
xor r8d, dword [rcx + rbx + 0x300]
xor r8d, dword [r9 + rbx]
xor r8d, dword [r10 + rbx + 0x100]
xor eax, r8d
sub rdi, 1
jne 0x180004890
mov rbx, qword [rsp + 8]
mov rsi, qword [rsp + 0x10]
mov rdi, qword [rsp + 0x18]
ror eax, 1
mov ecx, eax
xor ecx, r11d
and ecx, 0xaaaaaaaa
xor eax, ecx
xor ecx, r11d
ror ecx, 9
mov r8d, eax
xor r8d, ecx
and r8d, 0x3fc03fc
xor eax, r8d
xor r8d, ecx
mov ecx, eax
ror r8d, 0x16
xor ecx, r8d
and ecx, 0x33333333
xor r8d, ecx
xor ecx, eax
ror ecx, 0xe
mov edx, ecx
xor edx, r8d
and edx, 0xfff0000f
xor r8d, edx
xor edx, ecx
ror edx, 0x14
mov ecx, edx
xor ecx, r8d
and ecx, 0xf0f0f0f0
mov eax, ecx
xor ecx, edx
xor eax, r8d
mov dword [r14 + 4], ecx
ror eax, 4
mov dword [r14], eax
mov r14, qword [rsp + 0x20]
ret