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

Disassembly:
mov qword [rsp + 0x10], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x80
mov rax, qword [0x140032040]
xor rax, rsp
mov qword [rsp + 0x78], rax
mov r15, rdx
mov r12, rcx
mov qword [rsp + 0x58], rcx
xor ecx, ecx
lea eax, [r8 - 0x10]
test eax, 0xfffffff7
je 0x140002918
cmp r8d, 0x20
jne 0x140002bfa
mov dword [rsp + 0x20], ecx
mov dword [rsp + 0x24], 1
mov dword [rsp + 0x28], 2
mov dword [rsp + 0x2c], 4
mov dword [rsp + 0x30], 8
mov dword [rsp + 0x34], reloc.WS2_32.dll_recv
mov dword [rsp + 0x38], 0x20
mov dword [rsp + 0x3c], 0x40
mov dword [rsp + 0x40], 0x80
mov dword [rsp + 0x44], 0x1b
mov dword [rsp + 0x48], 0x36
mov eax, r8d
cdq
and edx, 3
add eax, edx
sar eax, 2
movsxd rbx, eax
cmp r8d, 0x10
je 0x1400029ab
cmp r8d, 0x18
je 0x14000299e
cmp r8d, 0x20
jne 0x140002c1d
mov ebp, 0x3c
mov r13d, 0xf0
jmp 0x1400029b6
mov ebp, 0x34
mov r13d, 0xd0
jmp 0x1400029b6
mov ebp, 0x2c
mov r13d, 0xb0
xorps xmm0, xmm0
mov eax, ebp
movdqu xmmword [rsp + 0x60], xmm0
mov qword [rsp + 0x70], rcx
lea r14, [rax*4]
cmp r14, 0x1000
jb 0x140002a00
lea rcx, [r14 + 0x27]
cmp rcx, r14
jbe 0x140002bee
call fcn.1400078e8
test rax, rax
je 0x140002bf4
lea rdi, [rax + 0x27]
and rdi, 0xffffffffffffffe0
mov qword [rdi - 8], rax
jmp 0x140002a0b
mov rcx, r14
call fcn.1400078e8
mov rdi, rax
mov qword [rsp + 0x60], rdi
lea rsi, [r14 + rdi]
mov qword [rsp + 0x70], rsi
mov r8, r14
xor edx, edx
mov rcx, rdi
call fcn.140021670
mov qword [rsp + 0x68], rsi
test ebx, ebx
jle 0x140002a50
mov rcx, rdi
sub r15, rdi
mov rdx, rbx
nop dword [rax + rax]
mov eax, dword [r15 + rcx]
mov dword [rcx], eax
lea rcx, [rcx + 4]
sub rdx, 1
jne 0x140002a40
mov r9d, ebx
cmp ebx, ebp
jge 0x140002b36
mov r10, rdi
lea r15, str.cw
nop word [rax + rax]
mov ecx, dword [r10 + rbx*4 - 4]
mov eax, r9d
cdq
idiv ebx
movsxd r11, eax
test edx, edx
jne 0x140002ad0
ror ecx, 8
mov r8d, ecx
mov eax, ecx
shr rax, 0x10
movzx ecx, al
movzx ecx, byte [rcx + r15]
mov eax, r8d
shr rax, 0x18
movzx eax, byte [rax + r15]
shl eax, 8
or ecx, eax
shl ecx, 8
mov eax, r8d
shr rax, 8
movzx edx, al
movzx eax, byte [rdx + r15]
or ecx, eax
shl ecx, 8
movzx eax, r8b
movzx edx, byte [rax + r15]
or ecx, edx
xor ecx, dword [rsp + r11*4 + 0x20]
jmp 0x140002b1f
cmp ebx, 6
jle 0x140002b1f
cmp edx, 4
jne 0x140002b1f
mov r8, rcx
mov rax, rcx
shr rax, 0x10
movzx ecx, al
movzx ecx, byte [rcx + r15]
mov rax, r8
shr rax, 0x18
movzx eax, byte [rax + r15]
shl eax, 8
or ecx, eax
shl ecx, 8
mov rax, r8
shr rax, 8
movzx edx, al
movzx eax, byte [rdx + r15]
or ecx, eax
shl ecx, 8
movzx eax, r8b
movzx edx, byte [rax + r15]
or ecx, edx
xor ecx, dword [r10]
mov dword [r10 + rbx*4], ecx
inc r9d
add r10, 4
cmp r9d, ebp
jl 0x140002a70
xorps xmm0, xmm0
xor eax, eax
movups xmmword [r12], xmm0
mov qword [r12], rax
mov qword [r12 + 8], rax
mov qword [r12 + 0x10], rax
mov rcx, r13
call fcn.1400078e8
mov rbx, rax
mov qword [r12], rax
add rax, r13
mov qword [r12 + 0x10], rax
mov r8, r13
xor edx, edx
mov rcx, rbx
call fcn.140021670
lea rax, [rbx + r13]
mov qword [r12 + 8], rax
sub rsi, rdi
and rsi, 0xfffffffffffffffc
mov r8, rsi
mov rdx, rdi
mov rcx, qword [r12]
call fcn.140020fd0
nop
test rdi, rdi
je 0x140002bc3
cmp rsi, 0x1000
jb 0x140002bb8
add rsi, 0x27
mov rcx, qword [rdi - 8]
sub rdi, rcx
lea rax, [rdi - 8]
cmp rax, 0x1f
ja 0x140002bf4
mov rdi, rcx
mov rdx, rsi
mov rcx, rdi
call fcn.140007640
mov rax, r12
mov rcx, qword [rsp + 0x78]
xor rcx, rsp
call fcn.140007620
mov rbx, qword [rsp + 0xc8]
add rsp, 0x80
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call fcn.140001250
int3
call fcn.14000d710
int3
lea rdx, str.Invalid_key_size
lea rcx, [rsp + 0x60]
call fcn.140001310
lea rdx, [0x140031478]
lea rcx, [rsp + 0x60]
call fcn.140009500
int3
lea rdx, str.Invalid_key_size
lea rcx, [rsp + 0x60]
call fcn.140001310
lea rdx, [0x140031478]
lea rcx, [rsp + 0x60]
call fcn.140009500
int3