Function at 0x140030b90
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push r12
mov eax, dword [r8]
mov rbp, r9
mov r12, r8
lea r9d, [rax + rdx - 0x21524111]
mov rdi, rdx
mov r11, rcx
mov r10d, r9d
mov ebx, r9d
add r9d, dword [rbp]
test cl, 3
jne 0x140030d1c
cmp rdx, 0xc
jbe 0x140030c78
lea rcx, [rdx - 0xd]
movabs rax, 0xaaaaaaaaaaaaaaab
mul rcx
shr rdx, 3
inc rdx
mov rax, rdx
imul rax, rax, 0xfffffffffffffff4
add rdi, rax
nop dword [rax]
add r9d, dword [r11 + 8]
add r10d, dword [r11 + 4]
mov eax, dword [r11]
sub eax, r9d
mov r8d, r9d
add r9d, r10d
add eax, ebx
rol r8d, 4
add r11, 0xc
xor r8d, eax
sub r10d, r8d
mov eax, r8d
add r8d, r9d
rol eax, 6
xor eax, r10d
sub r9d, eax
mov ecx, eax
add eax, r8d
rol ecx, 8
xor ecx, r9d
sub r8d, ecx
mov ebx, ecx
add ecx, eax
rol ebx, 0x10
xor ebx, r8d
sub eax, ebx
mov r10d, ebx
add ebx, ecx
ror r10d, 0xd
xor r10d, eax
sub ecx, r10d
mov r9d, r10d
add r10d, ebx
rol r9d, 4
xor r9d, ecx
dec rdx
jne 0x140030c00
cmp rdi, 0xc
ja 0x140031038
lea rcx, [0x140000000]
mov eax, dword [rcx + rdi*4 + 0x310ac]
add rax, rcx
jmp rax
add r9d, dword [r11 + 8]
add r10d, dword [r11 + 4]
add ebx, dword [r11]
jmp 0x140031038
mov eax, dword [r11 + 8]
add r10d, dword [r11 + 4]
and eax, 0xffffff
add r9d, eax
add ebx, dword [r11]
jmp 0x140031038
movzx eax, word [r11 + 8]
add r10d, dword [r11 + 4]
add r9d, eax
add ebx, dword [r11]
jmp 0x140031038
movzx eax, byte [r11 + 8]
add r10d, dword [r11 + 4]
add r9d, eax
add ebx, dword [r11]
jmp 0x140031038
mov eax, dword [r11 + 4]
and eax, 0xffffff
add r10d, eax
add ebx, dword [r11]
jmp 0x140031038
movzx eax, word [r11 + 4]
add r10d, eax
add ebx, dword [r11]
jmp 0x140031038
movzx eax, byte [r11 + 4]
add r10d, eax
add ebx, dword [r11]
jmp 0x140031038
mov eax, dword [r11]
and eax, 0xffffff
jmp 0x140031036
test cl, 1
jne 0x140030ea2
cmp rdx, 0xc
jbe 0x140030e03
lea rcx, [rdx - 0xd]
movabs rax, 0xaaaaaaaaaaaaaaab
mul rcx
mov rsi, rdx
shr rsi, 3
inc rsi
mov rax, rsi
imul rax, rax, 0xfffffffffffffff4
add rdi, rax
nop word [rax + rax]
movzx eax, word [r11]
movzx ecx, word [r11 + 6]
movzx edx, word [r11 + 4]
movzx r8d, word [r11 + 8]
shl ecx, 0x10
add edx, r10d
add edx, ecx
movzx ecx, word [r11 + 0xa]
add r8d, r9d
shl ecx, 0x10
add r11, 0xc
add r8d, ecx
movzx ecx, word [r11 - 0xa]
shl ecx, 0x10
mov r9d, r8d
add ecx, eax
rol r9d, 4
sub ecx, r8d
add r8d, edx
add ecx, ebx
xor r9d, ecx
sub edx, r9d
mov eax, r9d
add r9d, r8d
rol eax, 6
xor eax, edx
sub r8d, eax
mov ecx, eax
add eax, r9d
rol ecx, 8
xor ecx, r8d
sub r9d, ecx
mov ebx, ecx
add ecx, eax
rol ebx, 0x10
xor ebx, r9d
sub eax, ebx
mov r10d, ebx
add ebx, ecx
ror r10d, 0xd
xor r10d, eax
sub ecx, r10d
mov r9d, r10d
add r10d, ebx
rol r9d, 4
xor r9d, ecx
dec rsi
jne 0x140030d60
cmp rdi, 0xc
ja 0x140031038
lea rcx, [0x140000000]
mov eax, dword [rcx + rdi*4 + 0x310e0]
add rax, rcx
jmp rax
movzx ecx, word [r11 + 0xa]
movzx eax, word [r11 + 8]
shl ecx, 0x10
add r9d, eax
add r9d, ecx
movzx ecx, word [r11 + 6]
movzx eax, word [r11 + 4]
shl ecx, 0x10
add r10d, eax
add r10d, ecx
movzx ecx, word [r11 + 2]
movzx eax, word [r11]
shl ecx, 0x10
add ebx, eax
add ebx, ecx
jmp 0x140031038
movzx eax, byte [r11 + 0xa]
shl eax, 0x10
add r9d, eax
movzx eax, word [r11 + 8]
add r9d, eax
jmp case.0x140030e14.8
movzx eax, byte [r11 + 8]
add r9d, eax
jmp case.0x140030e14.8
movzx eax, byte [r11 + 6]
shl eax, 0x10
add r10d, eax
movzx eax, word [r11 + 4]
add r10d, eax
jmp case.0x140030e14.4
movzx eax, byte [r11 + 4]
add r10d, eax
jmp case.0x140030e14.4
movzx eax, byte [r11 + 2]
shl eax, 0x10
add ebx, eax
movzx eax, word [r11]
jmp 0x140031036
cmp rdx, 0xc
jbe 0x140030faf
lea rcx, [rdx - 0xd]
movabs rax, 0xaaaaaaaaaaaaaaab
mul rcx
mov rsi, rdx
shr rsi, 3
inc rsi
mov rax, rsi
imul rax, rax, 0xfffffffffffffff4
add rdi, rax
movzx eax, byte [r11 + 6]
movzx ecx, byte [r11 + 7]
movzx r8d, byte [r11 + 4]
movzx edx, byte [r11 + 8]
shl ecx, 8
add r8d, r10d
add ecx, eax
movzx eax, byte [r11 + 5]
add edx, r9d
shl ecx, 8
add r11, 0xc
add ecx, eax
movzx eax, byte [r11 - 2]
shl ecx, 8
add r8d, ecx
movzx ecx, byte [r11 - 1]
shl ecx, 8
add ecx, eax
movzx eax, byte [r11 - 3]
shl ecx, 8
add ecx, eax
movzx eax, byte [r11 - 0xa]
shl ecx, 8
add edx, ecx
movzx ecx, byte [r11 - 9]
shl ecx, 8
mov r9d, edx
add ecx, eax
movzx eax, byte [r11 - 0xb]
rol r9d, 4
shl ecx, 8
add ecx, eax
movzx eax, byte [r11 - 0xc]
shl ecx, 8
add ecx, eax
sub ecx, edx
add edx, r8d
add ecx, ebx
xor r9d, ecx
sub r8d, r9d
mov eax, r9d
add r9d, edx
rol eax, 6
xor eax, r8d
sub edx, eax
mov ecx, eax
add eax, r9d
rol ecx, 8
xor ecx, edx
sub r9d, ecx
mov ebx, ecx
add ecx, eax
rol ebx, 0x10
xor ebx, r9d
sub eax, ebx
mov r10d, ebx
add ebx, ecx
ror r10d, 0xd
xor r10d, eax
sub ecx, r10d
mov r9d, r10d
add r10d, ebx
rol r9d, 4
xor r9d, ecx
dec rsi
jne 0x140030ed1
cmp rdi, 0xc
ja 0x140031038
lea rcx, [0x140000000]
mov eax, dword [rcx + rdi*4 + 0x31114]
add rax, rcx
jmp rax
movzx eax, byte [r11 + 0xb]
shl eax, 0x18
add r9d, eax
movzx eax, byte [r11 + 0xa]
shl eax, 0x10
add r9d, eax
movzx eax, byte [r11 + 9]
shl eax, 8
add r9d, eax
movzx eax, byte [r11 + 8]
add r9d, eax
movzx eax, byte [r11 + 7]
shl eax, 0x18
add r10d, eax
movzx eax, byte [r11 + 6]
shl eax, 0x10
add r10d, eax
movzx eax, byte [r11 + 5]
shl eax, 8
add r10d, eax
movzx eax, byte [r11 + 4]
add r10d, eax
movzx eax, byte [r11 + 3]
shl eax, 0x18
add ebx, eax
movzx eax, byte [r11 + 2]
shl eax, 0x10
add ebx, eax
movzx eax, byte [r11 + 1]
shl eax, 8
add ebx, eax
movzx eax, byte [r11]
add ebx, eax
xor r9d, r10d
mov eax, r10d
rol eax, 0xe
sub r9d, eax
mov eax, r9d
mov edx, r9d
rol eax, 0xb
xor edx, ebx
sub edx, eax
xor r10d, edx
mov eax, edx
ror eax, 7
sub r10d, eax
xor r9d, r10d
mov eax, r10d
rol eax, 0x10
sub r9d, eax
mov eax, r9d
mov ecx, r9d
rol eax, 4
xor ecx, edx
sub ecx, eax
xor r10d, ecx
mov eax, ecx
rol eax, 0xe
sub r10d, eax
mov eax, r10d
xor r9d, r10d
ror eax, 8
sub r9d, eax
mov rbx, qword [rsp + 0x10]
mov rsi, qword [rsp + 0x20]
mov rdi, qword [rsp + 0x28]
mov dword [r12], r9d
mov dword [rbp], r10d
mov rbp, qword [rsp + 0x18]
pop r12
ret