Function at 0x1400bd960
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 [0x14023b4a0]
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 0x1400bd9b6
mov r8d, 0x10
sub r8, rcx
mov rcx, r8
mov r8d, 1
test rbp, rbp
je 0x1400bdd58
test rdx, rdx
je 0x1400bdd62
test rax, rax
je 0x1400bdd80
lea r9, [rcx + r12]
mov r10, qword [rax]
lea rcx, [r9 + 0x20]
mov qword [rax], rcx
test rdi, rdi
je 0x1400bdd51
mov qword [rsp + 0x20], r9
mov eax, 9
cmp r10, rcx
jb 0x1400bdb4d
cmp qword [rbp], 0
je 0x1400bdd76
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 0x1400bdd51
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, [0x1402319e0]
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 0x1400bdb80
xor ecx, ecx
test r9b, 4
je 0x1400bdab7
mov ecx, dword [rdx]
mov dword [r11], ecx
mov ecx, 4
test r9b, 2
je 0x1400bdaca
movzx edi, word [rdx + rcx]
mov word [r11 + rcx], di
add rcx, 2
test r9b, 1
je 0x1400bdad8
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 0x1400bdb00
nop dword [rax]
lea ecx, [rdx + 1]
mov byte [r9 + rdx], cl
add rdx, 1
cmp rdx, r11
jb 0x1400bdaf0
and ebx, 2
jne 0x1400bdd3b
test eax, eax
je 0x1400bdbb4
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 0x1400bdba7
mov rdi, qword [rsp + 0x28]
add r12, 0x10
sub r10, 0x10
lea rdx, [rdi + r12]
mov rdi, qword [rsp + 0x30]
cmp rdx, rdi
jb 0x1400bda88
mov rdi, qword [0x14023b4a0]
mov rdx, qword [rsp + 0x78]
sub rdx, qword [rdi]
jne 0x1400bdd8a
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 0x1400bdb88
lea r11, [r13 + rdx]
add rdx, r12
jmp 0x1400bdaa5
mov qword [r8 + 0xa], r14
mov qword [r8 + 0x12], r15
jmp 0x1400bdb2e
mov rdx, qword [r8]
test rdx, rdx
je 0x1400bdd6c
mov rdi, qword [rdx + 0x18]
mov r11, qword [rdx + 0x20]
lea rbx, [rsp + 0x70]
lea rcx, [0x1402319e0]
movdqu xmm0, xmmword [rdi]
pxor xmm0, xmmword [rsp + 0x60]
lea r9, [r11 - 1]
movups xmmword [rsp + 0x60], xmm0
cmp r9, 1
jbe 0x1400bdcd3
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 0x1400bdc48
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 0x1400bdc40
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 0x1400bdce0
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 0x1400bdb11
movdqu xmm0, xmmword [r8 + 0xa]
pxor xmm0, xmmword [rsp + 0x60]
movups xmmword [rsp + 0x60], xmm0
jmp 0x1400bdb09
xor eax, eax
jmp 0x1400bdb4d
mov eax, 2
jmp 0x1400bdb4d
mov eax, 3
jmp 0x1400bdb4d
mov eax, 1
jmp 0x1400bdb11
mov eax, 7
jmp 0x1400bdb4d
mov eax, 6
jmp 0x1400bdb4d
call dbg.__stack_chk_fail
nop