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

Disassembly:
endbr64
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x88
mov rbx, qword [0x140485900]
mov rax, qword [rsp + 0xf0]
mov r12, r8
mov rbp, rcx
mov rdi, r9
xor r8d, r8d
mov rcx, qword [rbx]
mov qword [rsp + 0x78], rcx
xor ecx, ecx
mov rcx, r12
and ecx, 0xf
je 0x140212a46
mov r8d, 0x10
sub r8, rcx
mov rcx, r8
mov r8d, 1
test rbp, rbp
je 0x140212de8
test rdx, rdx
je 0x140212df2
test rax, rax
je 0x140212e10
lea r9, [rcx + r12]
mov r10, qword [rax]
lea rcx, [r9 + 0x20]
mov qword [rax], rcx
test rdi, rdi
je 0x140212de1
mov qword [rsp + 0x20], r9
mov eax, 9
cmp r10, rcx
jb 0x140212bdd
cmp qword [rbp], 0
je 0x140212e06
movdqu xmm1, xmmword [str.OAES]
lea r10, [rdi + 0x20]
mov rcx, r10
movups xmmword [rdi], xmm1
movzx eax, word [rbp + 8]
mov byte [rdi + 8], r8b
mov r8, r12
mov word [rdi + 6], ax
movdqu xmm2, xmmword [rbp + 0xa]
movups xmmword [rdi + 0x10], xmm2
call sym.memcpy
mov r9, qword [rsp + 0x20]
mov r10, rax
test r9, r9
je 0x140212de1
mov rdx, 0xffffffffffffffe0
movzx ebx, word [rbp + 8]
xor eax, eax
mov r8, rbp
sub rdx, rdi
mov qword [rsp + 0x30], r9
lea r13, [rsp + 0x60]
lea rsi, [0x14046ae60]
mov qword [rsp + 0x28], rdx
mov qword [rsp + 0xe0], r12
mov r12, r10
mov r10, qword [rsp + 0xe0]
nop word [rax + rax]
mov r9d, 0x10
mov r11, r13
mov rdx, r12
cmp r10, r9
cmovbe r9, r10
cmp r9d, 8
jae 0x140212c10
xor ecx, ecx
test r9b, 4
je 0x140212b47
mov ecx, dword [rdx]
mov dword [r11], ecx
mov ecx, 4
test r9b, 2
je 0x140212b5a
movzx edi, word [rdx + rcx]
mov word [r11 + rcx], di
add rcx, 2
test r9b, 1
je 0x140212b68
movzx edx, byte [rdx + rcx]
mov byte [r11 + rcx], dl
mov r11d, 0x10
xor edx, edx
sub r11, r9
add r9, r13
cmp r10, 0xf
ja 0x140212b90
nop dword [rax]
lea ecx, [rdx + 1]
mov byte [r9 + rdx], cl
add rdx, 1
cmp rdx, r11
jb 0x140212b80
and ebx, 2
jne 0x140212dcb
test eax, eax
je 0x140212c44
mov r14, qword [rsp + 0x60]
mov r15, qword [rsp + 0x68]
mov qword [r12], r14
mov qword [r12 + 8], r15
movzx ebx, word [r8 + 8]
test bl, 2
jne 0x140212c37
mov rdi, qword [rsp + 0x28]
add r12, 0x10
sub r10, 0x10
lea rdx, [rdi + r12]
mov rdi, qword [rsp + 0x30]
cmp rdx, rdi
jb 0x140212b18
mov rdi, qword [0x140485900]
mov rdx, qword [rsp + 0x78]
sub rdx, qword [rdi]
jne 0x140212e1a
add rsp, 0x88
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov edi, r9d
xor edx, edx
and edi, 0xfffffff8
mov ecx, edx
add edx, 8
mov r11, qword [r12 + rcx]
mov qword [r13 + rcx], r11
cmp edx, edi
jb 0x140212c18
lea r11, [r13 + rdx]
add rdx, r12
jmp 0x140212b35
mov qword [r8 + 0xa], r14
mov qword [r8 + 0x12], r15
jmp 0x140212bbe
mov rdx, qword [r8]
test rdx, rdx
je 0x140212dfc
mov rdi, qword [rdx + 0x18]
mov r11, qword [rdx + 0x20]
lea rbx, [rsp + 0x70]
lea rcx, [0x14046ae60]
movdqu xmm0, xmmword [rdi]
pxor xmm0, xmmword [rsp + 0x60]
lea r9, [r11 - 1]
movups xmmword [rsp + 0x60], xmm0
cmp r9, 1
jbe 0x140212d63
lea rbx, [rsp + 0x6c]
mov qword [rsp + 0x40], r11
mov ebp, 1
lea r15, [rsp + 0x64]
mov qword [rsp + 0x20], rbx
lea rbx, [rsp + 0x70]
lea r14, [rsp + 0x68]
mov qword [rsp + 0x50], r8
mov qword [rsp + 0xe0], r10
mov qword [rsp + 0x58], rsi
mov dword [rsp + 0x4c], eax
mov rax, rbx
mov rbx, rbp
mov qword [rsp + 0x38], r12
mov rbp, rax
mov r12, r9
nop dword [rax + rax]
mov rdx, r13
nop dword [rax + rax]
movzx eax, byte [rdx]
add rdx, 1
mov rcx, rax
and eax, 0xf0
and ecx, 0xf
add rax, rsi
movzx eax, byte [rax + rcx]
mov byte [rdx - 1], al
cmp rbp, rdx
jne 0x140212cd8
mov rcx, r13
call sym.oaes_shift_rows.isra.0
call sym.oaes_mix_cols.isra.0
mov rcx, r15
call sym.oaes_mix_cols.isra.0
mov rcx, r14
call sym.oaes_mix_cols.isra.0
mov rcx, qword [rsp + 0x20]
call sym.oaes_mix_cols.isra.0
mov rax, rbx
add rbx, 1
shl rax, 4
movdqu xmm0, xmmword [rdi + rax]
pxor xmm0, xmmword [rsp + 0x60]
movups xmmword [rsp + 0x60], xmm0
cmp r12, rbx
jne 0x140212cd0
mov r12, qword [rsp + 0x38]
mov r11, qword [rsp + 0x40]
mov rbx, rbp
mov eax, dword [rsp + 0x4c]
mov r8, qword [rsp + 0x50]
mov r10, qword [rsp + 0xe0]
mov rcx, qword [rsp + 0x58]
mov r9, r13
nop word cs:[rax + rax]
movzx edx, byte [r9]
add r9, 1
mov rbp, rdx
and edx, 0xf0
and ebp, 0xf
add rdx, rcx
movzx edx, byte [rdx + rbp]
mov byte [r9 - 1], dl
cmp r9, rbx
jne 0x140212d70
mov rcx, r13
mov dword [rsp + 0x38], eax
mov qword [rsp + 0x20], r8
call sym.oaes_shift_rows.isra.0
mov rdx, r11
mov r8, qword [rsp + 0x20]
mov eax, dword [rsp + 0x38]
shl rdx, 4
movdqu xmm0, xmmword [rdi + rdx - 0x10]
pxor xmm0, xmmword [rsp + 0x60]
movups xmmword [rsp + 0x60], xmm0
jmp 0x140212ba1
movdqu xmm0, xmmword [r8 + 0xa]
pxor xmm0, xmmword [rsp + 0x60]
movups xmmword [rsp + 0x60], xmm0
jmp 0x140212b99
xor eax, eax
jmp 0x140212bdd
mov eax, 2
jmp 0x140212bdd
mov eax, 3
jmp 0x140212bdd
mov eax, 1
jmp 0x140212ba1
mov eax, 7
jmp 0x140212bdd
mov eax, 6
jmp 0x140212bdd
call dbg.__stack_chk_fail
nop