Function at 0x330906c90
Capabilities:
Encode data using xor
Encrypt data using aes
Reference aes constants

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x58
mov qword [rsp + 0xa0], rcx
mov qword [rsp + 0xb0], r8
test r8, r8
je 0x3309073a2
mov rax, rcx
lea rdi, [rdx + 0x10]
mov qword [rsp + 0x38], rdx
add rax, 0xd0
mov qword [rsp + 0x18], rdi
mov qword [rsp + 0x40], rax
mov rax, 0xfffffffffffffff0
sub rax, rdx
mov qword [rsp + 0x48], rax
mov r14, qword [rsp + 0x38]
mov rax, qword [rsp + 0xa0]
mov rbx, qword [rsp + 0xa0]
movzx r13d, byte [r14]
xor r13b, byte [rax + 0xe0]
movdqu xmm0, xmmword [r14]
movzx edi, byte [r14 + 1]
mov byte [r14], r13b
mov r8, rbx
xor dil, byte [rax + 0xe1]
movzx ecx, byte [r14 + 2]
movzx ebp, byte [r14 + 4]
movzx r10d, byte [r14 + 5]
mov byte [r14 + 1], dil
xor cl, byte [rax + 0xe2]
movzx eax, byte [r14 + 3]
mov byte [r14 + 2], cl
xor al, byte [rbx + 0xe3]
mov byte [r14 + 3], al
xor bpl, byte [rbx + 0xe4]
mov byte [r14 + 4], bpl
xor r10b, byte [rbx + 0xe5]
mov byte [r14 + 5], r10b
movzx r11d, byte [r14 + 8]
mov byte [rsp + 0x2f], al
movzx eax, byte [r14 + 6]
xor al, byte [rbx + 0xe6]
mov byte [r14 + 6], al
mov byte [rsp + 0x2d], al
movzx eax, byte [r14 + 7]
xor al, byte [rbx + 0xe7]
movzx r15d, al
mov byte [r14 + 7], r15b
xor r11b, byte [rbx + 0xe8]
mov byte [r14 + 8], r11b
movzx eax, byte [r14 + 9]
xor al, byte [rbx + 0xe9]
movzx esi, byte [r14 + 0xa]
mov byte [r14 + 9], al
xor sil, byte [rbx + 0xea]
mov byte [r14 + 0xa], sil
movzx edx, byte [r14 + 0xb]
movzx ebx, byte [rbx + 0xeb]
mov r12, qword [rsp + 0xa0]
mov r9, qword [rsp + 0xa0]
xor ebx, edx
movzx edx, byte [r14 + 0xc]
mov byte [r14 + 0xb], bl
xor dl, byte [r8 + 0xec]
mov byte [r14 + 0xc], dl
movzx r8d, byte [r14 + 0xd]
xor r8b, byte [r12 + 0xed]
movzx r12d, r8b
movzx r8d, byte [r14 + 0xe]
mov byte [r14 + 0xd], r12b
xor r8b, byte [r9 + 0xee]
mov byte [r14 + 0xe], r8b
movzx r14d, byte [r14 + 0xf]
xor r14b, byte [r9 + 0xef]
mov r9, qword [rsp + 0x40]
mov byte [rsp + 0x2e], r14b
mov r14, qword [rsp + 0x38]
mov qword [rsp + 0x30], r9
movzx r9d, r8b
nop dword [rax]
lea r8, [0x330957280]
movzx ecx, cl
movzx edx, dl
movzx eax, al
movzx ebp, bpl
movzx r11d, r11b
movzx r13d, r13b
movzx esi, sil
movzx ebp, byte [r8 + rbp]
movzx ebx, bl
movzx edi, dil
movzx r10d, r10b
movzx r13d, byte [r8 + r13]
mov byte [rsp], bpl
mov rbp, r8
movzx r8d, byte [r8 + r11]
movzx ecx, byte [rbp + rcx]
movzx eax, byte [rbp + rax]
movzx edi, byte [rbp + rdi]
movzx r10d, byte [rbp + r10]
mov byte [rsp + 0x2b], r8b
mov byte [rsp + 0x20], cl
movzx ecx, byte [rsp + 0x2d]
movzx r8d, byte [rbp + rdx]
movzx edx, byte [rbp + r12]
mov byte [rsp + 0x2c], al
movzx ecx, byte [rbp + rcx]
movzx r12d, byte [rbp + r15]
movzx eax, byte [rbp + rsi]
movzx esi, byte [rbp + r9]
mov byte [rsp + 0x2d], cl
movzx ecx, byte [rsp + 0x2e]
movzx r9d, byte [rbp + rbx]
movzx r11d, byte [rsp + 0x2d]
movzx r15d, byte [rbp + rcx]
movzx ecx, byte [rsp + 0x2f]
mov rbx, r9
shl r9, 8
movzx ecx, byte [rbp + rcx]
mov byte [rsp + 0x2e], r15b
mov byte [rsp + 0x2f], cl
movzx ecx, sil
or r9, rcx
movzx ecx, dil
shl r9, 8
or r9, rcx
movzx ecx, byte [rsp]
shl r9, 8
or r9, rcx
mov r15, rcx
movzx ecx, r12b
shl r9, 8
or r9, rcx
movzx ecx, al
shl r9, 8
or r9, rcx
movzx ecx, dl
shl r9, 8
or r9, rcx
movzx ecx, r13b
mov rbp, rcx
movzx ecx, byte [rsp + 0x2f]
shl r9, 8
or rbp, r9
shl rcx, 8
or rcx, r11
movzx r11d, byte [rsp + 0x2c]
shl rcx, 8
or rcx, r11
movzx r11d, r8b
shl rcx, 8
or rcx, r11
movzx r11d, byte [rsp + 0x2e]
shl rcx, 8
or rcx, r11
movzx r11d, byte [rsp + 0x20]
shl rcx, 8
or rcx, r11
movzx r11d, r10b
shl rcx, 8
or rcx, r11
movzx r11d, byte [rsp + 0x2b]
mov qword [rsp], rbp
shl rcx, 8
mov r9, qword [rsp + 0x30]
mov rbp, rcx
movzx ecx, byte [rsp + 0x2b]
or rbp, r11
mov qword [rsp + 8], rbp
movdqu xmm1, xmmword [rsp]
movups xmmword [r14], xmm1
xor r13b, byte [r9]
mov byte [r14], r13b
xor dl, byte [r9 + 1]
mov byte [r14 + 1], dl
xor al, byte [r9 + 2]
mov byte [r14 + 2], al
xor r12b, byte [r9 + 3]
mov byte [r14 + 3], r12b
xor r15b, byte [r9 + 4]
mov byte [r14 + 4], r15b
xor dil, byte [r9 + 5]
mov ebp, r15d
mov byte [r14 + 5], dil
xor sil, byte [r9 + 6]
mov byte [r14 + 6], sil
xor bl, byte [r9 + 7]
mov byte [r14 + 7], bl
xor cl, byte [r9 + 8]
mov byte [r14 + 8], cl
mov r11d, ecx
xor r10b, byte [r9 + 9]
mov rcx, r9
mov r15, rcx
mov byte [r14 + 9], r10b
movzx r9d, byte [rsp + 0x20]
xor r9b, byte [rcx + 0xa]
movzx ecx, byte [rsp + 0x2e]
mov byte [r14 + 0xa], r9b
xor cl, byte [r15 + 0xb]
mov byte [r14 + 0xb], cl
xor r8b, byte [r15 + 0xc]
mov byte [r14 + 0xc], r8b
mov byte [rsp + 0x2b], r8b
movzx r8d, byte [rsp + 0x2c]
xor r8b, byte [r15 + 0xd]
mov byte [r14 + 0xd], r8b
mov byte [rsp + 0x2c], r8b
movzx r8d, byte [rsp + 0x2d]
xor r8b, byte [r15 + 0xe]
mov byte [r14 + 0xe], r8b
mov byte [rsp], r8b
mov r8, r15
movzx r15d, byte [rsp + 0x2f]
xor r15b, byte [r8 + 0xf]
mov byte [r14 + 0xf], r15b
cmp qword [rsp + 0xa0], r8
je 0x33090727d
mov qword [rsp + 0x20], r14
mov r15, r14
movzx eax, byte [r15]
movzx r14d, byte [r15 + 1]
movzx r10d, byte [r15 + 2]
mov edx, eax
lea ecx, [rax + rax]
mov byte [rsp + 0x2b], al
mov r9d, r14d
sar dl, 7
sar r9b, 7
mov r8d, r10d
mov byte [rsp], r10b
and edx, 0x1b
and r9d, 0x1b
sar r8b, 7
xor edx, ecx
and r8d, 0x1b
mov r13d, edx
mov ebx, edx
mov eax, edx
sar r13b, 7
lea edx, [rbx + rbx]
mov byte [rsp + 0x2c], al
and r13d, 0x1b
xor r13d, edx
mov edi, r13d
lea edx, [r13 + r13]
sar dil, 7
and edi, 0x1b
xor edi, edx
lea edx, [r14 + r14]
xor r9d, edx
mov ebp, r9d
lea edx, [r9 + r9]
sar bpl, 7
and ebp, 0x1b
xor ebp, edx
mov esi, ebp
lea edx, [rbp + rbp]
sar sil, 7
and esi, 0x1b
xor esi, edx
lea edx, [r10 + r10]
xor r8d, edx
mov r12d, r8d
lea edx, [r8 + r8]
sar r12b, 7
and r12d, 0x1b
xor r12d, edx
mov ecx, r12d
lea edx, [r12 + r12]
sar cl, 7
mov ebx, ecx
movzx ecx, byte [r15 + 3]
and ebx, 0x1b
xor ebx, edx
movzx edx, byte [r15 + 3]
sar cl, 7
and ecx, 0x1b
add edx, edx
xor ecx, edx
mov r11d, ecx
lea edx, [rcx + rcx]
sar r11b, 7
and r11d, 0x1b
xor eax, r13d
xor r11d, edx
xor eax, edi
mov r10d, r11d
lea edx, [r11 + r11]
sar r10b, 7
and r10d, 0x1b
xor r10d, edx
movzx edx, byte [rsp]
xor edx, r14d
xor dl, byte [r15 + 3]
xor edx, r9d
xor r9d, ebp
xor edx, r12d
xor r9d, esi
xor edx, esi
xor edx, ebx
xor edx, r10d
xor edx, eax
movzx eax, byte [rsp + 0x2b]
mov byte [r15], dl
movzx edx, byte [rsp]
xor edx, eax
xor dl, byte [r15 + 3]
xor edx, r8d
xor edx, r11d
xor edx, edi
xor edx, ebx
xor edx, r10d
xor edx, r9d
movzx r9d, byte [r15 + 3]
mov byte [r15 + 1], dl
mov edx, eax
movzx eax, byte [rsp]
xor edx, r14d
xor r9d, edx
xor r9d, ecx
xor r9d, r13d
xor r9d, edi
xor r9d, esi
xor r9d, r10d
xor r8d, r12d
xor eax, edx
xor al, byte [rsp + 0x2c]
xor eax, ebp
xor ecx, r11d
xor r8d, ebx
add r15, 4
xor eax, edi
xor ecx, r10d
xor r9d, r8d
xor eax, esi
mov byte [r15 - 2], r9b
xor eax, ebx
xor ecx, eax
mov byte [r15 - 1], cl
cmp qword [rsp + 0x18], r15
jne 0x330907087
mov r14, qword [rsp + 0x20]
sub qword [rsp + 0x30], 0x10
movzx ebx, byte [r14 + 6]
movzx edx, byte [r14 + 0xf]
movzx r12d, byte [r14 + 0xd]
movzx eax, byte [r14 + 9]
movzx r10d, byte [r14 + 5]
movzx edi, byte [r14 + 1]
mov byte [rsp + 0x2d], bl
movzx ebx, byte [r14 + 3]
movzx ecx, byte [r14 + 2]
mov byte [rsp + 0x2e], dl
movzx esi, byte [r14 + 0xa]
movzx r9d, byte [r14 + 0xe]
movzx r15d, byte [r14 + 7]
movzx r13d, byte [r14]
mov byte [rsp + 0x2f], bl
movzx ebp, byte [r14 + 4]
movzx ebx, byte [r14 + 0xb]
movzx r11d, byte [r14 + 8]
movzx edx, byte [r14 + 0xc]
jmp 0x330906e38
mov r8d, r9d
mov r9d, r13d
mov r13d, eax
mov r14d, edx
mov rax, qword [rsp + 0xa0]
movzx edx, byte [rsp + 0x2b]
xor r9b, byte [rax + 0xf0]
mov rax, qword [rsp + 0x38]
mov byte [rax], r9b
mov rax, qword [rsp + 0xa0]
mov r9, qword [rsp + 0x38]
xor r14b, byte [rax + 0xf1]
mov byte [r9 + 1], r14b
xor r13b, byte [rax + 0xf2]
mov byte [r9 + 2], r13b
xor r12b, byte [rax + 0xf3]
mov byte [r9 + 3], r12b
xor bpl, byte [rax + 0xf4]
mov byte [r9 + 4], bpl
xor dil, byte [rax + 0xf5]
mov byte [r9 + 5], dil
xor sil, byte [rax + 0xf6]
mov byte [r9 + 6], sil
xor bl, byte [rax + 0xf7]
mov byte [r9 + 7], bl
xor r11b, byte [rax + 0xf8]
mov byte [r9 + 8], r11b
xor r10b, byte [rax + 0xf9]
mov byte [r9 + 9], r10b
xor r8b, byte [rax + 0xfa]
mov byte [r9 + 0xa], r8b
xor cl, byte [rax + 0xfb]
mov byte [r9 + 0xb], cl
xor dl, byte [rax + 0xfc]
mov byte [r9 + 0xc], dl
movzx esi, byte [rsp + 0x2c]
xor sil, byte [rax + 0xfd]
mov rax, qword [rsp + 0xa0]
mov rdi, qword [rsp + 0xa0]
movzx r10d, byte [rsp]
mov byte [r9 + 0xd], sil
xor r10b, byte [rax + 0xfe]
mov rax, r9
add qword [rsp + 0x18], 0x10
mov byte [r9 + 0xe], r10b
add rax, 0x10
xor r15b, byte [rdi + 0xff]
mov byte [r9 + 0xf], r15b
mov qword [rsp + 0x38], rax
mov rax, qword [rsp + 0x18]
movups xmmword [rdi + 0xf0], xmm0
mov rdi, qword [rsp + 0x48]
add rax, rdi
cmp rax, qword [rsp + 0xb0]
jb 0x330906ce4
add rsp, 0x58
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret