Function at 0x140004050
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, 0x68
mov bpl, byte [rcx]
mov al, byte [rcx + 1]
xor bpl, byte [rdx]
mov dword [rsp + 0x2c], ebp
mov byte [rcx], bpl
xor al, byte [rdx + 1]
mov dword [rsp + 0x34], eax
mov byte [rcx + 1], al
mov al, byte [rcx + 2]
xor al, byte [rdx + 2]
mov qword [rsp + 0x48], rax
mov byte [rcx + 2], al
mov al, byte [rcx + 3]
xor al, byte [rdx + 3]
mov dword [rsp + 0x30], eax
mov byte [rcx + 3], al
mov al, byte [rcx + 4]
xor al, byte [rdx + 4]
mov dword [rsp + 0x1c], eax
mov byte [rcx + 4], al
mov al, byte [rcx + 5]
xor al, byte [rdx + 5]
mov dword [rsp + 0x20], eax
mov byte [rcx + 5], al
mov al, byte [rcx + 6]
xor al, byte [rdx + 6]
mov qword [rsp + 0x40], rax
mov byte [rcx + 6], al
mov al, byte [rcx + 7]
xor al, byte [rdx + 7]
mov dword [rsp + 0x24], eax
mov byte [rcx + 7], al
mov r14b, byte [rcx + 8]
xor r14b, byte [rdx + 8]
mov byte [rcx + 8], r14b
mov bpl, byte [rcx + 9]
xor bpl, byte [rdx + 9]
mov dword [rsp + 0xc], ebp
mov byte [rcx + 9], bpl
mov bpl, byte [rcx + 0xa]
xor bpl, byte [rdx + 0xa]
mov qword [rsp + 0x38], rbp
mov byte [rcx + 0xa], bpl
mov bpl, byte [rcx + 0xb]
xor bpl, byte [rdx + 0xb]
mov dword [rsp + 0x10], ebp
mov byte [rcx + 0xb], bpl
mov r15b, byte [rcx + 0xc]
xor r15b, byte [rdx + 0xc]
mov byte [rcx + 0xc], r15b
mov dil, byte [rcx + 0xd]
xor dil, byte [rdx + 0xd]
mov byte [rcx + 0xd], dil
mov r11b, byte [rcx + 0xe]
xor r11b, byte [rdx + 0xe]
mov byte [rcx + 0xe], r11b
mov bpl, byte [rcx + 0xf]
mov qword [rsp + 0x60], rdx
xor bpl, byte [rdx + 0xf]
mov dword [rsp + 0x28], ebp
mov edx, 0x1f
mov qword [rsp + 0x50], rdx
nop word cs:[rax + rax]
movzx ebx, byte [rsp + 0x2c]
lea rsi, str.cw
movzx r13d, byte [rbx + rsi]
movzx ebx, byte [rsp + 0x1c]
movzx eax, byte [rbx + rsi]
movzx ebx, r14b
movzx ebp, byte [rbx + rsi]
movzx edx, r15b
movzx r9d, byte [rdx + rsi]
movzx edx, byte [rsp + 0x34]
movzx edx, byte [rdx + rsi]
mov byte [rsp + 7], dl
movzx edx, byte [rsp + 0x20]
movzx r14d, byte [rdx + rsi]
movzx ebx, byte [rsp + 0xc]
movzx r15d, byte [rbx + rsi]
movzx ebx, dil
movzx r8d, byte [rbx + rsi]
mov byte [rsp + 8], r13b
mov byte [rcx], r13b
mov byte [rsp + 9], al
mov byte [rcx + 4], al
mov byte [rsp + 0xb], bpl
mov byte [rcx + 8], bpl
mov byte [rsp + 0xa], r9b
mov byte [rcx + 0xc], r9b
movzx ebx, byte [rsp + 0x48]
movzx edx, byte [rbx + rsi]
movzx ebp, byte [rsp + 0x40]
movzx edi, byte [rbp + rsi]
movzx ebp, byte [rsp + 0x38]
movzx ebx, byte [rbp + rsi]
movzx eax, r11b
mov r11, rdx
movzx r12d, byte [rax + rsi]
movzx ebp, byte [rsp + 0x30]
movzx r10d, byte [rbp + rsi]
movzx ebp, byte [rsp + 0x24]
movzx r13d, byte [rbp + rsi]
movzx ebp, byte [rsp + 0x10]
movzx edx, byte [rbp + rsi]
movzx ebp, byte [rsp + 0x28]
movzx esi, byte [rbp + rsi]
mov byte [rcx + 1], r14b
mov byte [rsp + 0xc], r15b
mov byte [rcx + 5], r15b
mov byte [rsp + 0x10], r8b
mov byte [rcx + 9], r8b
movzx eax, byte [rsp + 7]
mov r15d, eax
mov byte [rcx + 0xd], al
mov byte [rcx + 2], bl
mov byte [rcx + 0xa], r11b
mov byte [rcx + 6], r12b
mov r8, rdi
mov byte [rcx + 0xe], dil
mov byte [rcx + 3], sil
mov qword [rsp + 0x38], rdx
mov byte [rcx + 0xf], dl
mov byte [rcx + 0xb], r13b
mov byte [rcx + 7], r10b
cmp qword [rsp + 0x50], 0xaf
je 0x140004621
mov r9d, ebx
mov ebp, esi
xor bpl, bl
xor bl, r14b
lea edx, [rbx + rbx]
xor dl, r14b
mov edi, r14d
movzx eax, byte [rsp + 8]
xor dil, al
xor r9b, dil
mov byte [rsp + 0x1a], r9b
sar bl, 7
and bl, 0x1b
xor dl, bl
mov dword [rsp + 0x34], edx
lea edx, [rdi + rdi]
mov dword [rsp + 0x2c], edx
mov edx, edi
mov byte [rsp + 0x28], dil
xor dil, sil
lea edx, [rbp + rbp]
xor dil, dl
sar bpl, 7
and bpl, 0x1b
xor dil, bpl
mov qword [rsp + 0x48], rdi
mov edx, esi
mov byte [rsp + 0x1b], sil
xor sil, al
lea edx, [rsi + rsi]
sar sil, 7
and sil, 0x1b
xor dl, r9b
xor dl, sil
mov dword [rsp + 0x30], edx
mov edx, r10d
xor dl, r12b
mov r9d, r12d
movzx eax, byte [rsp + 0xc]
xor r12b, al
lea ebp, [r12 + r12]
sar r12b, 7
and r12b, 0x1b
xor bpl, al
xor bpl, r12b
mov dword [rsp + 0x20], ebp
mov rbp, r8
mov edi, eax
movzx eax, byte [rsp + 9]
xor dil, al
mov ebx, eax
xor r9b, dil
mov byte [rsp + 0x17], r9b
mov eax, edi
mov byte [rsp + 0x19], dil
lea eax, [rdi + rdi]
mov dword [rsp + 0x1c], eax
xor dil, r10b
lea eax, [rdx + rdx]
xor dil, al
sar dl, 7
and dl, 0x1b
xor dil, dl
mov qword [rsp + 0x40], rdi
mov eax, r10d
mov byte [rsp + 0x18], r10b
xor r10b, bl
lea eax, [r10 + r10]
sar r10b, 7
and r10b, 0x1b
xor al, r9b
xor al, r10b
mov dword [rsp + 0x24], eax
mov eax, r13d
xor al, r11b
mov r12d, r11d
movzx edx, byte [rsp + 0x10]
xor r11b, dl
lea ebx, [r11 + r11]
sar r11b, 7
and r11b, 0x1b
xor bl, dl
xor bl, r11b
mov dword [rsp + 0xc], ebx
mov r8d, edx
movzx edx, byte [rsp + 0xb]
xor r8b, dl
mov ebx, edx
xor r12b, r8b
mov edi, r8d
movzx r10d, byte [rsp + 0xa]
lea edx, [r8 + r8]
mov dword [rsp + 0x5c], edx
xor r8b, r13b
lea edx, [rax + rax]
xor r8b, dl
sar al, 7
and al, 0x1b
xor r8b, al
mov eax, r13d
mov byte [rsp + 0x16], r13b
xor r13b, bl
lea eax, [r13 + r13]
sar r13b, 7
and r13b, 0x1b
xor al, r12b
xor al, r13b
mov dword [rsp + 0x10], eax
mov rax, qword [rsp + 0x38]
mov esi, eax
xor sil, bpl
mov ebx, ebp
xor bpl, r15b
lea r9d, [rbp + rbp]
sar bpl, 7
and bpl, 0x1b
xor r9b, r15b
xor r9b, bpl
mov r11d, r15d
xor r11b, r10b
xor bl, r11b
mov edx, ebx
mov byte [rsp + 7], bl
mov r13d, r11d
lea r15d, [r11 + r11]
xor r11b, al
lea ebp, [rsi + rsi]
xor r11b, bpl
sar sil, 7
and sil, 0x1b
xor r11b, sil
mov ebx, dword [rsp + 0x2c]
mov ebp, eax
xor al, r10b
lea r10d, [rax + rax]
sar al, 7
and al, 0x1b
xor r10b, dl
xor r10b, al
movzx edx, byte [rsp + 0x1b]
xor dl, byte [rsp + 0x1a]
xor bl, byte [rsp + 8]
movzx eax, byte [rsp + 0x28]
sar al, 7
and al, 0x1b
xor bl, al
xor bl, dl
mov esi, dword [rsp + 0x34]
xor sil, dl
movzx r14d, byte [rsp + 0x18]
xor r14b, byte [rsp + 0x17]
mov edx, dword [rsp + 0x1c]
xor dl, byte [rsp + 9]
movzx eax, byte [rsp + 0x19]
sar al, 7
and al, 0x1b
xor dl, al
xor dl, r14b
mov dword [rsp + 0x1c], edx
mov edx, dword [rsp + 0x20]
xor dl, r14b
mov dword [rsp + 0x20], edx
movzx eax, byte [rsp + 0x16]
xor al, r12b
mov r14d, dword [rsp + 0x5c]
xor r14b, byte [rsp + 0xb]
sar dil, 7
and dil, 0x1b
xor r14b, dil
mov edi, esi
xor r14b, al
mov r12d, dword [rsp + 0xc]
xor r12b, al
mov dword [rsp + 0xc], r12d
xor bpl, byte [rsp + 7]
mov esi, dword [rsp + 0x30]
mov rax, qword [rsp + 0x48]
xor r15b, byte [rsp + 0xa]
sar r13b, 7
and r13b, 0x1b
xor r15b, r13b
xor r15b, bpl
xor r9b, bpl
mov byte [rcx], bl
mov byte [rcx + 1], dil
mov byte [rcx + 2], al
mov byte [rcx + 3], sil
mov r13d, dword [rsp + 0x1c]
mov byte [rcx + 4], r13b
mov byte [rcx + 5], dl
mov rdx, qword [rsp + 0x40]
mov byte [rcx + 6], dl
mov edx, dword [rsp + 0x24]
mov byte [rcx + 7], dl
mov byte [rcx + 8], r14b
mov byte [rcx + 9], r12b
mov byte [rcx + 0xa], r8b
mov r12d, dword [rsp + 0x10]
mov byte [rcx + 0xb], r12b
mov byte [rcx + 0xc], r15b
mov byte [rcx + 0xd], r9b
mov byte [rcx + 0xe], r11b
mov byte [rcx + 0xf], r10b
mov rdx, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x50]
xor bl, byte [rdx + rbp - 0xf]
mov dword [rsp + 0x2c], ebx
mov byte [rcx], bl
xor dil, byte [rdx + rbp - 0xe]
mov dword [rsp + 0x34], edi
mov byte [rcx + 1], dil
mov edi, dword [rsp + 0x20]
xor al, byte [rdx + rbp - 0xd]
mov qword [rsp + 0x48], rax
mov byte [rcx + 2], al
xor sil, byte [rdx + rbp - 0xc]
mov dword [rsp + 0x30], esi
mov byte [rcx + 3], sil
xor r13b, byte [rdx + rbp - 0xb]
mov dword [rsp + 0x1c], r13d
mov byte [rcx + 4], r13b
xor dil, byte [rdx + rbp - 0xa]
mov dword [rsp + 0x20], edi
mov byte [rcx + 5], dil
mov rax, qword [rsp + 0x40]
xor al, byte [rdx + rbp - 9]
mov qword [rsp + 0x40], rax
mov byte [rcx + 6], al
mov eax, dword [rsp + 0x24]
xor al, byte [rdx + rbp - 8]
mov dword [rsp + 0x24], eax
mov byte [rcx + 7], al
xor r14b, byte [rdx + rbp - 7]
mov byte [rcx + 8], r14b
mov eax, dword [rsp + 0xc]
xor al, byte [rdx + rbp - 6]
mov dword [rsp + 0xc], eax
mov byte [rcx + 9], al
xor r8b, byte [rdx + rbp - 5]
mov qword [rsp + 0x38], r8
mov byte [rcx + 0xa], r8b
mov edi, r9d
mov eax, r12d
xor al, byte [rdx + rbp - 4]
mov dword [rsp + 0x10], eax
mov byte [rcx + 0xb], al
xor r15b, byte [rdx + rbp - 3]
mov byte [rcx + 0xc], r15b
xor dil, byte [rdx + rbp - 2]
mov byte [rcx + 0xd], dil
xor r11b, byte [rdx + rbp - 1]
mov byte [rcx + 0xe], r11b
xor r10b, byte [rdx + rbp]
mov dword [rsp + 0x28], r10d
mov byte [rcx + 0xf], r10b
add rbp, 0x10
mov qword [rsp + 0x50], rbp
jmp 0x140004150
mov rbp, qword [rsp + 0x60]
mov dl, byte [rsp + 8]
xor dl, byte [rbp + 0xa0]
mov byte [rcx], dl
xor r14b, byte [rbp + 0xa1]
mov byte [rcx + 1], r14b
xor bl, byte [rbp + 0xa2]
mov byte [rcx + 2], bl
xor sil, byte [rbp + 0xa3]
mov byte [rcx + 3], sil
mov dl, byte [rsp + 9]
xor dl, byte [rbp + 0xa4]
mov byte [rcx + 4], dl
mov al, byte [rsp + 0xc]
xor al, byte [rbp + 0xa5]
mov byte [rcx + 5], al
xor r12b, byte [rbp + 0xa6]
mov byte [rcx + 6], r12b
xor r10b, byte [rbp + 0xa7]
mov byte [rcx + 7], r10b
mov al, byte [rsp + 0xb]
xor al, byte [rbp + 0xa8]
mov byte [rcx + 8], al
mov al, byte [rsp + 0x10]
xor al, byte [rbp + 0xa9]
mov byte [rcx + 9], al
xor r11b, byte [rbp + 0xaa]
mov byte [rcx + 0xa], r11b
xor r13b, byte [rbp + 0xab]
mov byte [rcx + 0xb], r13b
mov al, byte [rsp + 0xa]
xor al, byte [rbp + 0xac]
mov byte [rcx + 0xc], al
mov r11d, r15d
xor r11b, byte [rbp + 0xad]
mov byte [rcx + 0xd], r11b
xor r8b, byte [rbp + 0xae]
mov byte [rcx + 0xe], r8b
mov rax, qword [rsp + 0x38]
xor al, byte [rbp + 0xaf]
mov byte [rcx + 0xf], al
add rsp, 0x68
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret