Function at 0x330906410
Capabilities:
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, 0x48
mov qword [rsp + 0x90], rcx
lea r9, [rcx + 0xf0]
mov qword [rsp + 0xa0], r8
test r8, r8
je 0x330906c7c
mov rbx, rcx
movzx eax, byte [rcx + 0xf0]
mov r12, rdx
mov qword [rsp + 0x30], 0
add rbx, 0x10
mov qword [rsp + 0x38], rbx
mov rbx, rcx
mov r10d, eax
add rbx, 0xe0
mov qword [rsp + 0x28], rbx
mov rbx, r9
xor r10b, byte [r12]
movzx eax, byte [r12 + 1]
mov byte [r12], r10b
xor al, byte [rbx + 1]
mov ebp, r10d
movzx edi, byte [r12 + 2]
movzx esi, byte [r12 + 3]
mov byte [rsp + 0x1c], al
mov byte [r12 + 1], al
xor dil, byte [rbx + 2]
mov byte [r12 + 2], dil
xor sil, byte [rbx + 3]
mov byte [r12 + 3], sil
movzx ecx, byte [r12 + 4]
xor cl, byte [rbx + 4]
movzx r10d, byte [r12 + 5]
mov byte [r12 + 4], cl
xor r10b, byte [rbx + 5]
mov byte [r12 + 5], r10b
movzx edx, byte [r12 + 6]
xor dl, byte [rbx + 6]
movzx r11d, byte [r12 + 7]
mov byte [r12 + 6], dl
xor r11b, byte [rbx + 7]
mov byte [r12 + 7], r11b
movzx eax, byte [r12 + 8]
xor al, byte [rbx + 8]
movzx r9d, byte [r12 + 9]
mov byte [r12 + 8], al
xor r9b, byte [rbx + 9]
mov byte [r12 + 9], r9b
movzx r8d, byte [r12 + 0xa]
xor r8b, byte [rbx + 0xa]
mov byte [r12 + 0xa], r8b
movzx r13d, byte [r12 + 0xb]
xor r13b, byte [rbx + 0xb]
movzx r14d, byte [r12 + 0xc]
mov byte [r12 + 0xb], r13b
xor r14b, byte [rbx + 0xc]
mov byte [r12 + 0xc], r14b
movzx r15d, byte [r12 + 0xd]
xor r15b, byte [rbx + 0xd]
mov byte [rsp + 0x1f], r13b
mov byte [r12 + 0xd], r15b
movzx r13d, byte [r12 + 0xe]
xor r13b, byte [rbx + 0xe]
mov byte [r12 + 0xe], r13b
mov byte [rsp + 0x20], r13b
movzx r13d, byte [r12 + 0xf]
xor r13b, byte [rbx + 0xf]
mov rbx, qword [rsp + 0x90]
mov byte [r12 + 0xf], r13b
xor bpl, byte [rbx]
mov byte [rsp + 0x21], r13b
mov byte [r12], bpl
mov byte [rsp + 0x1e], bpl
mov rbp, rbx
movzx ebx, byte [rsp + 0x1c]
xor bl, byte [rbp + 1]
mov byte [r12 + 1], bl
xor dil, byte [rbp + 2]
mov byte [r12 + 2], dil
xor sil, byte [rbp + 3]
mov byte [rsp + 0x1d], bl
mov byte [rsp + 0x1c], dil
mov byte [rsp], sil
mov byte [r12 + 3], sil
xor cl, byte [rbp + 4]
movzx edi, byte [rsp + 0x1f]
movzx r13d, byte [rsp + 0x20]
mov byte [r12 + 4], cl
xor r10b, byte [rbp + 5]
mov byte [r12 + 5], r10b
xor dl, byte [rbp + 6]
mov byte [r12 + 6], dl
xor r11b, byte [rbp + 7]
mov byte [r12 + 7], r11b
xor al, byte [rbp + 8]
mov byte [r12 + 8], al
xor r9b, byte [rbp + 9]
mov byte [r12 + 9], r9b
xor r8b, byte [rbp + 0xa]
mov byte [r12 + 0xa], r8b
xor dil, byte [rbp + 0xb]
mov byte [r12 + 0xb], dil
movzx esi, byte [rbp + 0xc]
mov ebx, edi
xor esi, r14d
movzx r14d, byte [rsp + 0x21]
mov byte [r12 + 0xc], sil
movzx edi, byte [rbp + 0xd]
xor edi, r15d
movzx r15d, byte [rsp + 0x1e]
mov byte [r12 + 0xd], dil
xor r13b, byte [rbp + 0xe]
mov byte [r12 + 0xe], r13b
xor r14b, byte [rbp + 0xf]
mov byte [rsp + 0x1e], r14b
mov rbp, qword [rsp + 0x38]
jmp 0x3309069a1
mov r11d, r15d
mov r10d, edx
xor r11d, eax
xor r10d, ebx
mov r14d, r11d
xor r14d, r10d
mov r13d, r14d
mov r14d, r11d
add r11d, r11d
sar r14b, 7
and r14d, 0x1b
xor r11d, r14d
mov r14d, r13d
xor r14d, r15d
xor r11d, r14d
mov byte [rsp], r11b
mov byte [r12], r11b
mov r11d, eax
xor eax, r13d
xor r11d, edx
xor edx, r13d
xor r13d, ebx
mov r14d, r11d
add r11d, r11d
sar r14b, 7
and r14d, 0x1b
xor r11d, r14d
xor r11d, eax
mov eax, r10d
add r10d, r10d
sar al, 7
mov byte [rsp + 0x23], r11b
and eax, 0x1b
mov byte [r12 + 1], r11b
xor r10d, eax
mov eax, r10d
xor eax, edx
mov edx, r15d
movzx r15d, byte [rsp + 0x20]
xor edx, ebx
mov byte [rsp + 0x24], al
mov r10d, edx
mov byte [r12 + 2], al
add edx, edx
sar r10b, 7
mov eax, r10d
mov r10d, ecx
and eax, 0x1b
xor r10d, r9d
xor eax, edx
mov edx, eax
xor edx, r13d
movzx r13d, byte [rsp + 0x1d]
mov byte [rsp + 0x25], dl
mov byte [r12 + 3], dl
mov edx, r10d
mov r10d, esi
xor r10d, r8d
mov ebx, edx
mov eax, r10d
mov r10d, edx
xor r10d, eax
sar bl, 7
add edx, edx
mov r11d, ebx
mov ebx, r10d
and r11d, 0x1b
xor ebx, ecx
xor ecx, r8d
xor edx, r11d
mov r11d, ebx
mov ebx, edx
mov edx, r9d
xor r9d, r10d
xor edx, esi
xor ebx, r11d
xor esi, r10d
xor r10d, r8d
mov r14d, edx
add edx, edx
mov byte [rsp + 0x26], bl
sar r14b, 7
mov byte [r12 + 4], bl
movzx ebx, byte [rsp + 0x1f]
mov r11d, r14d
movzx r14d, byte [rsp + 0x21]
and r11d, 0x1b
xor edx, r11d
xor edx, r9d
mov r9d, eax
add eax, eax
sar r9b, 7
mov byte [r12 + 5], dl
and r9d, 0x1b
xor eax, r9d
mov r9d, eax
mov eax, ecx
add ecx, ecx
sar al, 7
xor r9d, esi
movzx esi, byte [rsp + 0x22]
and eax, 0x1b
mov byte [rsp + 0x27], r9b
xor eax, ecx
mov ecx, esi
mov byte [r12 + 6], r9b
mov r8d, eax
mov eax, ebx
xor ecx, edi
xor r8d, r10d
xor eax, r14d
mov byte [r12 + 7], r8b
mov r11d, r8d
mov r8d, eax
xor r8d, ecx
mov r10d, r8d
mov r8d, eax
add eax, eax
sar r8b, 7
and r8d, 0x1b
xor eax, r8d
mov r8d, ebx
xor ebx, edi
xor r8d, r10d
xor eax, r8d
mov r8d, r14d
xor r8d, esi
xor esi, r10d
mov byte [r12 + 8], al
mov r9d, r8d
add r8d, r8d
sar r9b, 7
and r9d, 0x1b
xor r8d, r9d
mov r9d, r14d
movzx r14d, byte [rsp + 0x1c]
xor r9d, r10d
xor r10d, edi
xor r9d, r8d
mov r8d, ecx
add ecx, ecx
sar r8b, 7
mov byte [r12 + 9], r9b
and r8d, 0x1b
xor ecx, r8d
mov r8d, esi
mov esi, ebx
add ebx, ebx
sar sil, 7
xor r8d, ecx
mov ecx, esi
mov esi, r15d
mov byte [r12 + 0xa], r8b
and ecx, 0x1b
xor esi, r13d
xor ecx, ebx
mov edi, ecx
xor edi, r10d
movzx r10d, byte [rsp + 0x1e]
mov byte [r12 + 0xb], dil
mov ebx, edi
xor r10d, r14d
mov edi, r10d
xor edi, esi
mov ecx, edi
mov edi, esi
add esi, esi
sar dil, 7
and edi, 0x1b
xor esi, edi
mov edi, r15d
xor edi, ecx
xor esi, edi
mov edi, r13d
xor edi, r14d
xor r15b, byte [rsp + 0x1e]
mov byte [r12 + 0xc], sil
mov r14d, edi
add edi, edi
sar r14b, 7
mov r13d, r14d
mov r14d, r10d
and r13d, 0x1b
sar r14b, 7
xor edi, r13d
movzx r13d, byte [rsp + 0x1d]
and r14d, 0x1b
xor r13d, ecx
xor edi, r13d
lea r13d, [r10 + r10]
movzx r10d, byte [rsp + 0x1c]
xor r13d, r14d
mov r14d, r15d
mov byte [r12 + 0xd], dil
xor r10d, ecx
sar r14b, 7
xor cl, byte [rsp + 0x1e]
xor r13d, r10d
mov r10d, r15d
and r14d, 0x1b
add r10d, r10d
mov byte [r12 + 0xe], r13b
xor r14d, r10d
xor r14d, ecx
mov byte [r12 + 0xf], r14b
movzx r15d, byte [rsp]
xor r15b, byte [rbp]
movzx ecx, byte [rsp + 0x23]
mov byte [r12], r15b
xor cl, byte [rbp + 1]
mov byte [r12 + 1], cl
mov byte [rsp + 0x1d], cl
movzx ecx, byte [rsp + 0x24]
xor cl, byte [rbp + 2]
mov byte [r12 + 2], cl
mov byte [rsp + 0x1c], cl
movzx ecx, byte [rsp + 0x25]
xor cl, byte [rbp + 3]
mov byte [r12 + 3], cl
mov byte [rsp], cl
movzx ecx, byte [rsp + 0x26]
xor cl, byte [rbp + 4]
mov byte [r12 + 4], cl
movzx r10d, byte [rbp + 5]
xor r10d, edx
movzx edx, byte [rsp + 0x27]
mov byte [r12 + 5], r10b
xor dl, byte [rbp + 6]
mov byte [r12 + 6], dl
xor r11b, byte [rbp + 7]
mov byte [r12 + 7], r11b
xor al, byte [rbp + 8]
mov byte [r12 + 8], al
xor r9b, byte [rbp + 9]
mov byte [r12 + 9], r9b
xor r8b, byte [rbp + 0xa]
mov byte [r12 + 0xa], r8b
xor bl, byte [rbp + 0xb]
mov byte [r12 + 0xb], bl
xor sil, byte [rbp + 0xc]
mov byte [r12 + 0xc], sil
xor dil, byte [rbp + 0xd]
add rbp, 0x10
mov byte [r12 + 0xd], dil
xor r13b, byte [rbp - 2]
mov byte [r12 + 0xe], r13b
xor r14b, byte [rbp - 1]
mov byte [rsp + 0x1e], r14b
lea r14, [0x330957380]
movzx eax, al
movzx ecx, cl
movzx edx, dl
movzx eax, byte [r14 + rax]
movzx esi, sil
movzx r10d, r10b
movzx ebx, bl
movzx r15d, r15b
movzx edi, dil
movzx r8d, r8b
movzx r13d, r13b
mov byte [rsp + 0x1f], al
movzx eax, byte [r14 + rsi]
mov rsi, r14
movzx r11d, r11b
movzx edi, byte [rsi + rdi]
movzx r15d, byte [r14 + r15]
movzx r9d, r9b
movzx ecx, byte [r14 + rcx]
movzx r9d, byte [rsi + r9]
mov byte [rsp + 0x20], al
movzx eax, byte [rsp + 0x1d]
mov byte [rsp + 0x21], dil
movzx r14d, byte [r14 + rax]
movzx eax, byte [rsi + r10]
movzx r10d, byte [rsp + 0x1c]
mov byte [rsp + 0x1d], r14b
movzx r14d, byte [rsi + rdx]
movzx edi, byte [rsi + r10]
movzx edx, byte [rsi + r8]
movzx r8d, byte [rsp]
mov byte [rsp + 0x1c], r14b
movzx r14d, r15b
mov byte [rsp + 0x22], dil
mov rdi, rsi
movzx esi, byte [rsi + r13]
mov r10, rdi
movzx r8d, byte [rdi + r8]
movzx edi, byte [rdi + r11]
movzx r13d, byte [r10 + rbx]
mov r11, r10
movzx r10d, byte [rsp + 0x1e]
movzx ebx, byte [r11 + r10]
movzx r11d, r8b
movzx r10d, sil
mov byte [rsp + 0x1e], r13b
shl r11, 8
or r11, r10
movzx r10d, r9b
shl r11, 8
or r11, r10
movzx r10d, cl
shl r11, 8
or r11, r10
movzx r10d, bl
shl r11, 8
or r11, r10
movzx r10d, dl
shl r11, 8
or r11, r10
movzx r10d, al
shl r11, 8
or r11, r10
movzx r10d, r13b
movzx r13d, byte [rsp + 0x1c]
shl r10, 8
shl r11, 8
or r10, r13
movzx r13d, byte [rsp + 0x1d]
or r11, r14
shl r10, 8
or r10, r13
movzx r13d, byte [rsp + 0x20]
shl r10, 8
or r10, r13
movzx r13d, dil
shl r10, 8
or r10, r13
movzx r13d, byte [rsp + 0x22]
shl r10, 8
or r10, r13
movzx r13d, byte [rsp + 0x21]
shl r10, 8
or r10, r13
movzx r13d, byte [rsp + 0x1f]
mov qword [rsp], r11
shl r10, 8
mov r11, r10
or r11, r13
mov qword [rsp + 8], r11
mov r11, qword [rsp + 0x28]
movdqu xmm0, xmmword [rsp]
movups xmmword [r12], xmm0
cmp rbp, r11
jne 0x330906648
mov r13d, r15d
mov r15d, ecx
mov ecx, ebx
mov rbx, qword [rsp + 0x90]
movzx r10d, byte [rbx + 0xe0]
xor r10d, r13d
mov byte [r12], r10b
xor al, byte [rbx + 0xe1]
mov byte [r12 + 1], al
xor dl, byte [rbx + 0xe2]
mov byte [r12 + 2], dl
xor cl, byte [rbx + 0xe3]
mov byte [r12 + 3], cl
xor r15b, byte [rbx + 0xe4]
mov byte [r12 + 4], r15b
xor r9b, byte [rbx + 0xe5]
mov byte [r12 + 5], r9b
xor sil, byte [rbx + 0xe6]
mov byte [r12 + 6], sil
xor r8b, byte [rbx + 0xe7]
mov byte [r12 + 7], r8b
movzx eax, byte [rsp + 0x1f]
xor al, byte [rbx + 0xe8]
mov byte [r12 + 8], al
movzx eax, byte [rsp + 0x21]
xor al, byte [rbx + 0xe9]
mov byte [r12 + 9], al
movzx eax, byte [rsp + 0x22]
xor al, byte [rbx + 0xea]
mov byte [r12 + 0xa], al
movzx eax, byte [rbx + 0xeb]
xor eax, edi
mov byte [r12 + 0xb], al
movzx eax, byte [rsp + 0x20]
xor al, byte [rbx + 0xec]
mov byte [r12 + 0xc], al
movzx eax, byte [rsp + 0x1d]
xor al, byte [rbx + 0xed]
add qword [rsp + 0x30], 0x10
mov byte [r12 + 0xd], al
movzx eax, byte [rsp + 0x1c]
xor al, byte [rbx + 0xee]
mov rdx, qword [rsp + 0x30]
mov byte [r12 + 0xe], al
movzx eax, byte [rsp + 0x1e]
xor al, byte [rbx + 0xef]
mov rbx, r12
mov byte [r12 + 0xf], al
lea rax, [r12 + 0x10]
cmp rdx, qword [rsp + 0xa0]
jae 0x330906c4b
mov r12, rax
jmp 0x330906474
mov rdx, r12
mov rax, qword [rdx]
mov rbx, qword [rsp + 0x90]
mov rdx, qword [rdx + 8]
mov qword [rbx + 0xf0], rax
mov qword [rbx + 0xf8], rdx
add rsp, 0x48
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rdx, r9
jmp 0x330906c4e