Function at 0x140004710
Capabilities:
Encrypt data using aes
Reference aes constants

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x48
mov rbp, rdx
mov r13, rcx
mov r10b, byte [rcx]
mov al, byte [rcx + 1]
xor r10b, byte [rdx + 0xa0]
mov byte [rcx], r10b
xor al, byte [rdx + 0xa1]
mov byte [rsp + 4], al
mov byte [rcx + 1], al
mov al, byte [rcx + 2]
xor al, byte [rdx + 0xa2]
mov byte [rsp + 0x10], al
mov byte [rcx + 2], al
mov al, byte [rcx + 3]
xor al, byte [rdx + 0xa3]
mov byte [rsp + 8], al
mov byte [rcx + 3], al
mov al, byte [rcx + 4]
xor al, byte [rdx + 0xa4]
mov byte [rcx + 4], al
mov r12b, byte [rcx + 5]
xor r12b, byte [rdx + 0xa5]
mov byte [rcx + 5], r12b
mov cl, byte [rcx + 6]
xor cl, byte [rdx + 0xa6]
mov byte [rsp + 0x20], cl
mov byte [r13 + 6], cl
mov cl, byte [r13 + 7]
xor cl, byte [rdx + 0xa7]
mov byte [rsp + 0x18], cl
mov byte [r13 + 7], cl
mov bl, byte [r13 + 8]
xor bl, byte [rdx + 0xa8]
mov byte [r13 + 8], bl
mov r14b, byte [r13 + 9]
xor r14b, byte [rdx + 0xa9]
mov byte [r13 + 9], r14b
mov sil, byte [r13 + 0xa]
xor sil, byte [rdx + 0xaa]
mov byte [r13 + 0xa], sil
mov dl, byte [r13 + 0xb]
xor dl, byte [rbp + 0xab]
mov byte [r13 + 0xb], dl
mov cl, byte [r13 + 0xc]
xor cl, byte [rbp + 0xac]
mov byte [r13 + 0xc], cl
mov r11b, byte [r13 + 0xd]
xor r11b, byte [rbp + 0xad]
mov byte [r13 + 0xd], r11b
mov dil, byte [r13 + 0xe]
xor dil, byte [rbp + 0xae]
mov byte [r13 + 0xe], dil
mov r15b, byte [r13 + 0xf]
mov qword [rsp + 0x30], rbp
xor r15b, byte [rbp + 0xaf]
mov ebp, 9
mov qword [rsp + 0x28], rbp
mov qword [rsp + 0x40], r13
jmp 0x14000488a
add qword [rsp + 0x28], 0xffffffffffffffff
mov r11b, byte [r13 + 0xd]
mov r14b, byte [r13 + 9]
mov r12b, byte [r13 + 5]
mov r10b, byte [r13]
mov al, byte [r13 + 1]
mov byte [rsp + 4], al
mov al, byte [r13 + 2]
mov byte [rsp + 0x10], al
mov sil, byte [r13 + 0xa]
mov al, byte [r13 + 6]
mov byte [rsp + 0x20], al
mov dil, byte [r13 + 0xe]
mov al, byte [r13 + 3]
mov byte [rsp + 8], al
mov al, byte [r13 + 7]
mov byte [rsp + 0x18], al
mov dl, byte [r13 + 0xb]
mov r15b, byte [r13 + 0xf]
mov al, byte [r13 + 4]
mov bl, byte [r13 + 8]
mov cl, byte [r13 + 0xc]
movzx ebp, r10b
lea r8, [0x140006800]
mov r9b, byte [rbp + r8]
mov byte [r13], r9b
movzx eax, al
mov al, byte [rax + r8]
mov byte [rsp + 1], al
mov byte [r13 + 4], al
movzx ebp, bl
mov al, byte [rbp + r8]
mov byte [rsp + 2], al
mov byte [r13 + 8], al
movzx ecx, cl
mov al, byte [rcx + r8]
mov byte [rsp + 3], al
mov byte [r13 + 0xc], al
movzx ecx, r11b
mov al, byte [rcx + r8]
mov qword [rsp + 0x38], rax
mov byte [r13 + 1], al
movzx ecx, byte [rsp + 4]
mov bpl, byte [rcx + r8]
mov byte [r13 + 5], bpl
movzx ecx, r12b
mov r12b, byte [rcx + r8]
mov byte [r13 + 9], r12b
movzx ecx, r14b
mov al, byte [rcx + r8]
mov byte [rsp + 4], al
mov byte [r13 + 0xd], al
movzx ecx, sil
mov r11b, byte [rcx + r8]
mov byte [r13 + 2], r11b
movzx ecx, dil
mov bl, byte [rcx + r8]
mov byte [r13 + 6], bl
movzx ecx, byte [rsp + 0x10]
mov r14b, byte [rcx + r8]
mov byte [r13 + 0xa], r14b
movzx ecx, byte [rsp + 0x20]
mov sil, byte [rcx + r8]
mov byte [r13 + 0xe], sil
movzx ecx, byte [rsp + 0x18]
mov r10b, byte [rcx + r8]
mov byte [r13 + 3], r10b
movzx edx, dl
mov dl, byte [rdx + r8]
mov byte [r13 + 7], dl
movzx edi, r15b
mov r15b, byte [rdi + r8]
mov byte [r13 + 0xb], r15b
movzx edi, byte [rsp + 8]
mov r8b, byte [rdi + r8]
mov byte [r13 + 0xf], r8b
mov rdi, qword [rsp + 0x28]
shl rdi, 4
mov rcx, qword [rsp + 0x30]
xor r9b, byte [rcx + rdi]
mov qword [rsp + 8], r9
mov byte [r13], r9b
mov r9, qword [rsp + 0x38]
xor r9b, byte [rcx + rdi + 1]
mov byte [r13 + 1], r9b
xor r11b, byte [rcx + rdi + 2]
mov qword [rsp + 0x10], r11
mov byte [r13 + 2], r11b
mov r11, r10
xor r11b, byte [rcx + rdi + 3]
mov byte [r13 + 3], r11b
mov al, byte [rsp + 1]
xor al, byte [rcx + rdi + 4]
mov byte [r13 + 4], al
xor bpl, byte [rcx + rdi + 5]
mov byte [r13 + 5], bpl
xor bl, byte [rcx + rdi + 6]
mov byte [r13 + 6], bl
xor dl, byte [rcx + rdi + 7]
mov byte [r13 + 7], dl
mov dl, byte [rsp + 2]
xor dl, byte [rcx + rdi + 8]
mov byte [r13 + 8], dl
xor r12b, byte [rcx + rdi + 9]
mov byte [r13 + 9], r12b
xor r14b, byte [rcx + rdi + 0xa]
mov byte [r13 + 0xa], r14b
xor r15b, byte [rcx + rdi + 0xb]
mov byte [r13 + 0xb], r15b
mov dl, byte [rsp + 3]
xor dl, byte [rcx + rdi + 0xc]
mov byte [r13 + 0xc], dl
mov dl, byte [rsp + 4]
xor dl, byte [rcx + rdi + 0xd]
mov byte [r13 + 0xd], dl
xor sil, byte [rcx + rdi + 0xe]
mov byte [r13 + 0xe], sil
xor r8b, byte [rcx + rdi + 0xf]
mov byte [r13 + 0xf], r8b
cmp qword [rsp + 0x28], 0
je 0x140004bd4
xor eax, eax
mov qword [rsp + 0x18], rax
mov r10, qword [rsp + 8]
mov rcx, qword [rsp + 0x10]
nop
lea eax, [r10 + r10]
mov rbx, r10
mov qword [rsp + 8], r10
sar bl, 7
and bl, 0x1b
xor bl, al
lea edx, [rbx + rbx]
sar al, 7
and al, 0x1b
xor al, dl
mov qword [rsp + 0x20], rax
add eax, eax
sar dl, 7
and dl, 0x1b
xor dl, al
mov dword [rsp + 4], edx
lea r13d, [r9 + r9]
mov r14d, r9d
sar r14b, 7
and r14b, 0x1b
xor r14b, r13b
lea edi, [r14 + r14]
sar r13b, 7
and r13b, 0x1b
xor r13b, dil
lea eax, [r13 + r13]
sar dil, 7
and dil, 0x1b
xor dil, al
lea edx, [rcx + rcx]
mov ebp, ecx
mov r15, rcx
sar bpl, 7
and bpl, 0x1b
xor bpl, dl
lea esi, [rbp + rbp]
sar dl, 7
and dl, 0x1b
xor dl, sil
lea eax, [rdx + rdx]
sar sil, 7
and sil, 0x1b
xor sil, al
lea r8d, [r11 + r11]
mov r12d, r11d
sar r12b, 7
and r12b, 0x1b
xor r12b, r8b
sar r8b, 7
and r8b, 0x1b
mov rax, r11
lea r11d, [r12 + r12]
xor r8b, r11b
sar r11b, 7
and r11b, 0x1b
lea ecx, [r8 + r8]
xor r11b, cl
mov r10, r9
mov qword [rsp + 0x10], r15
mov r9d, r15d
xor r9b, r10b
xor r9b, al
xor r9b, bl
xor r9b, r14b
xor r15b, byte [rsp + 8]
xor r15b, al
xor r15b, r14b
mov r14, qword [rsp + 0x20]
xor r9b, r14b
xor r9b, dl
xor r8b, dil
xor dl, dil
mov ecx, edi
mov edi, dword [rsp + 4]
xor r9b, dil
xor cl, sil
xor cl, r9b
xor cl, r11b
xor r11b, sil
xor r10b, byte [rsp + 8]
xor r10b, r12b
xor al, r10b
xor al, r14b
xor r15b, bpl
xor al, bpl
xor al, dil
xor dl, al
mov rax, qword [rsp + 0x18]
mov rbp, qword [rsp + 0x40]
mov byte [rbp + rax*4], cl
xor r15b, r13b
xor r15b, dil
xor r15b, r8b
xor r15b, r11b
mov byte [rbp + rax*4 + 1], r15b
xor dl, r11b
mov byte [rbp + rax*4 + 2], dl
xor bl, byte [rsp + 0x10]
xor bl, r10b
xor bl, r13b
xor bl, dil
xor bl, r8b
xor bl, r11b
mov byte [rbp + rax*4 + 3], bl
cmp rax, 3
mov r13, rbp
je 0x140004830
movzx r10d, byte [r13 + rax*4 + 4]
movzx r9d, byte [r13 + rax*4 + 5]
movzx ecx, byte [r13 + rax*4 + 6]
movzx r11d, byte [r13 + rax*4 + 7]
add rax, 1
mov qword [rsp + 0x18], rax
jmp 0x140004a40
add rsp, 0x48
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret