Function at 0x1800fef60
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x20], rbp
push rsi
push rdi
push r12
push r13
mov esi, dword [rcx]
mov r10d, dword [rcx + 4]
movzx eax, r8b
or al, r9b
mov rbp, r9
mov r12, r8
mov r13, rdx
mov rdi, rcx
test al, 7
jne 0x1800ff366
mov qword [rsp + 0x28], rbx
test rdx, 0xfffffffffffffff8
je 0x1800ff162
nop
mov rbx, qword [r12]
lea eax, [rsi + 1]
movzx r9d, al
mov edx, dword [rdi + r9*4 + 8]
lea eax, [rdx + r10]
movzx r10d, al
mov ecx, dword [rdi + r10*4 + 8]
mov dword [rdi + r10*4 + 8], edx
mov dword [rdi + r9*4 + 8], ecx
lea eax, [rcx + rdx]
movzx ecx, al
lea eax, [r9 + 1]
mov r11d, dword [rdi + rcx*4 + 8]
movzx r9d, al
mov edx, dword [rdi + r9*4 + 8]
lea eax, [rdx + r10]
movzx r10d, al
mov ecx, dword [rdi + r10*4 + 8]
mov dword [rdi + r10*4 + 8], edx
mov dword [rdi + r9*4 + 8], ecx
lea eax, [rcx + rdx]
movzx ecx, al
mov eax, dword [rdi + rcx*4 + 8]
shl rax, 8
or r11, rax
lea eax, [r9 + 1]
movzx r9d, al
mov edx, dword [rdi + r9*4 + 8]
lea eax, [rdx + r10]
movzx r10d, al
mov ecx, dword [rdi + r10*4 + 8]
mov dword [rdi + r10*4 + 8], edx
mov dword [rdi + r9*4 + 8], ecx
lea eax, [rcx + rdx]
movzx ecx, al
mov eax, dword [rdi + rcx*4 + 8]
shl rax, 0x10
or r11, rax
lea eax, [r9 + 1]
movzx r9d, al
mov edx, dword [rdi + r9*4 + 8]
lea eax, [rdx + r10]
movzx r10d, al
mov ecx, dword [rdi + r10*4 + 8]
mov dword [rdi + r10*4 + 8], edx
mov dword [rdi + r9*4 + 8], ecx
lea eax, [rcx + rdx]
movzx ecx, al
mov eax, dword [rdi + rcx*4 + 8]
shl rax, 0x18
or r11, rax
lea eax, [r9 + 1]
movzx r9d, al
mov edx, dword [rdi + r9*4 + 8]
lea eax, [rdx + r10]
movzx r10d, al
mov ecx, dword [rdi + r10*4 + 8]
mov dword [rdi + r10*4 + 8], edx
mov dword [rdi + r9*4 + 8], ecx
lea eax, [rcx + rdx]
movzx ecx, al
mov eax, dword [rdi + rcx*4 + 8]
shl rax, 0x20
or r11, rax
lea eax, [r9 + 1]
movzx r9d, al
mov edx, dword [rdi + r9*4 + 8]
lea eax, [rdx + r10]
movzx r10d, al
mov ecx, dword [rdi + r10*4 + 8]
mov dword [rdi + r10*4 + 8], edx
mov dword [rdi + r9*4 + 8], ecx
lea eax, [rcx + rdx]
movzx ecx, al
mov eax, dword [rdi + rcx*4 + 8]
shl rax, 0x28
or r11, rax
lea eax, [r9 + 1]
movzx r9d, al
mov edx, dword [rdi + r9*4 + 8]
lea eax, [rdx + r10]
movzx r10d, al
sub r13, 8
add rbp, 8
mov ecx, dword [rdi + r10*4 + 8]
mov dword [rdi + r10*4 + 8], edx
add r12, 8
mov dword [rdi + r9*4 + 8], ecx
lea eax, [rcx + rdx]
movzx ecx, al
mov eax, dword [rdi + rcx*4 + 8]
shl rax, 0x30
or r11, rax
lea eax, [r9 + 1]
movzx esi, al
mov edx, dword [rdi + rsi*4 + 8]
lea eax, [rdx + r10]
movzx r10d, al
mov ecx, dword [rdi + r10*4 + 8]
mov dword [rdi + r10*4 + 8], edx
mov dword [rdi + rsi*4 + 8], ecx
lea eax, [rcx + rdx]
movzx ecx, al
mov eax, dword [rdi + rcx*4 + 8]
shl rax, 0x38
or rax, r11
xor rax, rbx
mov qword [rbp - 8], rax
test r13, 0xfffffffffffffff8
jne 0x1800fefa0
test r13, r13
je 0x1800ff34f
xor r11d, r11d
mov qword [rsp + 0x30], r14
mov r14, qword [r12]
or r12, 0xffffffffffffffff
mov ecx, 8
mov qword [rsp + 0x38], r15
mov r15, qword [rbp]
sub cl, r13b
and r13d, 7
shl cl, 3
mov ebx, r11d
shr r12, cl
dec r13
cmp r13, 6
ja case.default.0x1800ff1b8
lea rcx, sym.AliAuthSDK.dll_CB9L_7.qqAbQQMYOd__cGhb1_j__94QEyzIa__9fXt
mov eax, dword [rcx + r13*4 + 0xff75c]
add rax, rcx
jmp rax
lea eax, [rsi + 1]
mov ebx, 8
movzx esi, al
mov edx, dword [rdi + rsi*4 + 8]
lea eax, [rdx + r10]
movzx r10d, al
mov ecx, dword [rdi + r10*4 + 8]
mov dword [rdi + r10*4 + 8], edx
mov dword [rdi + rsi*4 + 8], ecx
lea eax, [rcx + rdx]
movzx ecx, al
mov r11d, dword [rdi + rcx*4 + 8]
lea eax, [rsi + 1]
movzx esi, al
mov edx, dword [rdi + rsi*4 + 8]
lea eax, [rdx + r10]
movzx r10d, al
mov ecx, dword [rdi + r10*4 + 8]
mov dword [rdi + r10*4 + 8], edx
lea eax, [rcx + rdx]
mov dword [rdi + rsi*4 + 8], ecx
movzx ecx, al
mov eax, dword [rdi + rcx*4 + 8]
mov rcx, rbx
shl rax, cl
or r11, rax
add rbx, 8
lea eax, [rsi + 1]
movzx esi, al
mov edx, dword [rdi + rsi*4 + 8]
lea eax, [rdx + r10]
movzx r10d, al
mov ecx, dword [rdi + r10*4 + 8]
mov dword [rdi + r10*4 + 8], edx
lea eax, [rcx + rdx]
mov dword [rdi + rsi*4 + 8], ecx
movzx ecx, al
mov eax, dword [rdi + rcx*4 + 8]
mov rcx, rbx
shl rax, cl
or r11, rax
add rbx, 8
lea eax, [rsi + 1]
movzx esi, al
mov edx, dword [rdi + rsi*4 + 8]
lea eax, [rdx + r10]
movzx r10d, al
mov ecx, dword [rdi + r10*4 + 8]
mov dword [rdi + r10*4 + 8], edx
lea eax, [rcx + rdx]
mov dword [rdi + rsi*4 + 8], ecx
movzx ecx, al
mov eax, dword [rdi + rcx*4 + 8]
mov rcx, rbx
shl rax, cl
or r11, rax
add rbx, 8
lea eax, [rsi + 1]
movzx esi, al
mov edx, dword [rdi + rsi*4 + 8]
lea eax, [rdx + r10]
movzx r10d, al
mov ecx, dword [rdi + r10*4 + 8]
mov dword [rdi + r10*4 + 8], edx
lea eax, [rcx + rdx]
mov dword [rdi + rsi*4 + 8], ecx
movzx ecx, al
mov eax, dword [rdi + rcx*4 + 8]
mov rcx, rbx
shl rax, cl
or r11, rax
add rbx, 8
lea eax, [rsi + 1]
movzx esi, al
mov edx, dword [rdi + rsi*4 + 8]
lea eax, [rdx + r10]
movzx r10d, al
mov ecx, dword [rdi + r10*4 + 8]
mov dword [rdi + r10*4 + 8], edx
lea eax, [rcx + rdx]
mov dword [rdi + rsi*4 + 8], ecx
movzx ecx, al
mov eax, dword [rdi + rcx*4 + 8]
mov rcx, rbx
shl rax, cl
or r11, rax
add rbx, 8
lea eax, [rsi + 1]
mov rcx, rbx
movzx esi, al
mov r8d, dword [rdi + rsi*4 + 8]
lea eax, [r8 + r10]
movzx r10d, al
mov edx, dword [rdi + r10*4 + 8]
mov dword [rdi + r10*4 + 8], r8d
lea eax, [rdx + r8]
mov dword [rdi + rsi*4 + 8], edx
movzx edx, al
mov eax, dword [rdi + rdx*4 + 8]
shl rax, cl
or r11, rax
xor r11, r14
mov r14, qword [rsp + 0x30]
and r11, r12
not r12
and r12, r15
mov r15, qword [rsp + 0x38]
or r11, r12
mov qword [rbp], r11
mov rbx, qword [rsp + 0x28]
mov dword [rdi + 4], r10d
mov dword [rdi], esi
mov rbp, qword [rsp + 0x40]
pop r13
pop r12
pop rdi
pop rsi
ret
mov r11, rdx
shr r11, 3
test r11, r11
je 0x1800ff545
nop word [rax + rax]
lea eax, [rsi + 1]
movzx r9d, al
mov r8d, dword [rdi + r9*4 + 8]
lea eax, [r8 + r10]
movzx r10d, al
mov eax, dword [rdi + r10*4 + 8]
mov dword [rdi + r9*4 + 8], eax
mov dword [rdi + r10*4 + 8], r8d
add eax, r8d
movzx ecx, al
movzx eax, byte [rdi + rcx*4 + 8]
xor al, byte [r12]
mov byte [rbp], al
lea eax, [r9 + 1]
movzx r9d, al
mov r8d, dword [rdi + r9*4 + 8]
lea eax, [r8 + r10]
movzx r10d, al
mov eax, dword [rdi + r10*4 + 8]
mov dword [rdi + r9*4 + 8], eax
mov dword [rdi + r10*4 + 8], r8d
add eax, r8d
movzx ecx, al
movzx eax, byte [rdi + rcx*4 + 8]
xor al, byte [r12 + 1]
mov byte [rbp + 1], al
lea eax, [r9 + 1]
movzx r9d, al
mov r8d, dword [rdi + r9*4 + 8]
lea eax, [r8 + r10]
movzx r10d, al
mov eax, dword [rdi + r10*4 + 8]
mov dword [rdi + r9*4 + 8], eax
mov dword [rdi + r10*4 + 8], r8d
add eax, r8d
movzx ecx, al
movzx eax, byte [rdi + rcx*4 + 8]
xor al, byte [r12 + 2]
mov byte [rbp + 2], al
lea eax, [r9 + 1]
movzx r9d, al
mov r8d, dword [rdi + r9*4 + 8]
lea eax, [r8 + r10]
movzx r10d, al
mov eax, dword [rdi + r10*4 + 8]
mov dword [rdi + r9*4 + 8], eax
mov dword [rdi + r10*4 + 8], r8d
add eax, r8d
movzx ecx, al
movzx eax, byte [rdi + rcx*4 + 8]
xor al, byte [r12 + 3]
mov byte [rbp + 3], al
lea eax, [r9 + 1]
movzx r9d, al
mov r8d, dword [rdi + r9*4 + 8]
lea eax, [r8 + r10]
movzx r10d, al
mov eax, dword [rdi + r10*4 + 8]
mov dword [rdi + r9*4 + 8], eax
add eax, r8d
mov dword [rdi + r10*4 + 8], r8d
movzx ecx, al
movzx eax, byte [rdi + rcx*4 + 8]
xor al, byte [r12 + 4]
mov byte [rbp + 4], al
lea eax, [r9 + 1]
movzx r9d, al
mov r8d, dword [rdi + r9*4 + 8]
lea eax, [r8 + r10]
movzx r10d, al
mov eax, dword [rdi + r10*4 + 8]
mov dword [rdi + r9*4 + 8], eax
add eax, r8d
mov dword [rdi + r10*4 + 8], r8d
movzx ecx, al
movzx eax, byte [rdi + rcx*4 + 8]
xor al, byte [r12 + 5]
mov byte [rbp + 5], al
lea eax, [r9 + 1]
movzx r9d, al
mov r8d, dword [rdi + r9*4 + 8]
lea eax, [r8 + r10]
add rbp, 8
add r12, 8
movzx r10d, al
mov eax, dword [rdi + r10*4 + 8]
mov dword [rdi + r9*4 + 8], eax
add eax, r8d
mov dword [rdi + r10*4 + 8], r8d
movzx ecx, al
movzx eax, byte [rdi + rcx*4 + 8]
xor al, byte [r12 - 2]
mov byte [rbp - 2], al
lea eax, [r9 + 1]
movzx esi, al
mov r8d, dword [rdi + rsi*4 + 8]
lea eax, [r8 + r10]
movzx r10d, al
mov eax, dword [rdi + r10*4 + 8]
mov dword [rdi + rsi*4 + 8], eax
add eax, r8d
mov dword [rdi + r10*4 + 8], r8d
movzx ecx, al
movzx eax, byte [rdi + rcx*4 + 8]
xor al, byte [r12 - 1]
dec r11
mov byte [rbp - 1], al
jne 0x1800ff380
and r13d, 7
je 0x1800ff74a
lea eax, [rsi + 1]
inc rbp
inc r12
movzx esi, al
mov r8d, dword [rdi + rsi*4 + 8]
lea eax, [r8 + r10]
movzx r10d, al
mov eax, dword [rdi + r10*4 + 8]
mov dword [rdi + rsi*4 + 8], eax
add eax, r8d
mov dword [rdi + r10*4 + 8], r8d
movzx ecx, al
movzx eax, byte [rdi + rcx*4 + 8]
xor al, byte [r12 - 1]
dec r13
mov byte [rbp - 1], al
je 0x1800ff74a
nop word [rax + rax]
lea eax, [rsi + 1]
movzx esi, al
mov r8d, dword [rdi + rsi*4 + 8]
lea eax, [r8 + r10]
movzx r10d, al
mov eax, dword [rdi + r10*4 + 8]
mov dword [rdi + rsi*4 + 8], eax
add eax, r8d
mov dword [rdi + r10*4 + 8], r8d
movzx ecx, al
movzx eax, byte [rdi + rcx*4 + 8]
xor al, byte [r12]
dec r13
mov byte [rbp], al
je 0x1800ff74a
lea eax, [rsi + 1]
movzx esi, al
mov r8d, dword [rdi + rsi*4 + 8]
lea eax, [r8 + r10]
movzx r10d, al
mov eax, dword [rdi + r10*4 + 8]
mov dword [rdi + rsi*4 + 8], eax
add eax, r8d
mov dword [rdi + r10*4 + 8], r8d
movzx ecx, al
movzx eax, byte [rdi + rcx*4 + 8]
xor al, byte [r12 + 1]
dec r13
mov byte [rbp + 1], al
je 0x1800ff74a
lea eax, [rsi + 1]
movzx esi, al
mov r8d, dword [rdi + rsi*4 + 8]
lea eax, [r8 + r10]
movzx r10d, al
mov eax, dword [rdi + r10*4 + 8]
mov dword [rdi + rsi*4 + 8], eax
add eax, r8d
mov dword [rdi + r10*4 + 8], r8d
movzx ecx, al
movzx eax, byte [rdi + rcx*4 + 8]
xor al, byte [r12 + 2]
dec r13
mov byte [rbp + 2], al
je 0x1800ff74a
lea eax, [rsi + 1]
movzx esi, al
mov r8d, dword [rdi + rsi*4 + 8]
lea eax, [r8 + r10]
movzx r10d, al
mov eax, dword [rdi + r10*4 + 8]
mov dword [rdi + rsi*4 + 8], eax
add eax, r8d
mov dword [rdi + r10*4 + 8], r8d
movzx ecx, al
movzx eax, byte [rdi + rcx*4 + 8]
xor al, byte [r12 + 3]
dec r13
mov byte [rbp + 3], al
je 0x1800ff74a
lea eax, [rsi + 1]
movzx esi, al
mov r8d, dword [rdi + rsi*4 + 8]
lea eax, [r8 + r10]
movzx r10d, al
mov eax, dword [rdi + r10*4 + 8]
mov dword [rdi + rsi*4 + 8], eax
add eax, r8d
mov dword [rdi + r10*4 + 8], r8d
movzx ecx, al
movzx eax, byte [rdi + rcx*4 + 8]
xor al, byte [r12 + 4]
dec r13
mov byte [rbp + 4], al
je 0x1800ff74a
lea eax, [rsi + 1]
movzx esi, al
mov r8d, dword [rdi + rsi*4 + 8]
lea eax, [r8 + r10]
movzx r10d, al
mov eax, dword [rdi + r10*4 + 8]
mov dword [rdi + rsi*4 + 8], eax
add eax, r8d
mov dword [rdi + r10*4 + 8], r8d
movzx ecx, al
movzx eax, byte [rdi + rcx*4 + 8]
xor al, byte [r12 + 5]
dec r13
mov byte [rbp + 5], al
je 0x1800ff74a
lea eax, [rsi + 1]
add rbp, 7
add r12, 7
movzx esi, al
mov r8d, dword [rdi + rsi*4 + 8]
lea eax, [r8 + r10]
movzx r10d, al
mov eax, dword [rdi + r10*4 + 8]
mov dword [rdi + rsi*4 + 8], eax
add eax, r8d
mov dword [rdi + r10*4 + 8], r8d
movzx ecx, al
movzx eax, byte [rdi + rcx*4 + 8]
xor al, byte [r12 - 1]
dec r13
mov byte [rbp - 1], al
jne 0x1800ff5a0
mov rbp, qword [rsp + 0x40]
mov dword [rdi + 4], r10d
mov dword [rdi], esi
pop r13
pop r12
pop rdi
pop rsi
ret