Function at 0x140024d30
Capabilities:
Encode data using xor
Encrypt data using aes via x86 extensions

Disassembly:
push rbp
push rbx
push rsi
push rdi
lea rbp, [rsp - 0x278]
sub rsp, 0x378
mov rax, qword [0x140074040]
xor rax, rsp
mov qword [rbp + 0x250], rax
mov qword [rsp + 0x20], rcx
mov rdi, r8
mov rbx, rdx
mov rsi, rcx
cmp r8, 0x180
jbe 0x140024d76
mov eax, 0xffffffc8
jmp 0x140025171
xor edx, edx
lea rcx, [rbp + 0xb0]
mov r8d, 0x1a0
call fcn.140051d20
xor edx, edx
lea rcx, [rsp + 0x30]
mov r8d, 0x120
call fcn.140051d20
mov eax, edi
mov byte [rbp + 0xc7], 0x30
bswap eax
mov r8, rdi
mov dword [rbp + 0xc0], eax
mov rdx, rbx
lea rcx, [rbp + 0xc8]
call fcn.1400520e0
mov byte [rbp + rdi + 0xc8], 0x80
lea rcx, [rbp + 0x90]
add rdi, 0x19
mov qword [rsp + 0x28], rdi
xor eax, eax
nop dword [rax]
mov byte [rcx], al
lea rcx, [rcx + 1]
inc eax
cmp eax, 0x20
jl 0x140024de0
mov r8d, pe_nt_image_headers64
lea rdx, [rbp + 0x90]
lea rcx, [rsp + 0x30]
call fcn.14001fd20
mov edx, eax
mov r8d, 0x10
test eax, eax
jne 0x140025123
mov qword [rsp + 0x3b8], r12
xor r12d, r12d
mov qword [rsp + 0x370], r13
movzx r13d, byte [rbp + 0xb3]
mov qword [rsp + 0x368], r14
mov qword [rsp + 0x360], r15
nop
lea r14, [rbp + 0xb0]
xorps xmm0, xmm0
mov rsi, rdi
movups xmmword [rbp + 0x50], xmm0
test rdi, rdi
je 0x140024fba
lea rbx, [rbp + 0xb0]
lea rax, [rbp + 0x50]
sub rbx, rax
lea r15, [rbp + 0xbf]
nop
xor eax, eax
lea rcx, [rbp + 0x50]
cmp rcx, r15
ja 0x140024ea8
lea rcx, [rbp + 0x5f]
cmp rcx, r14
jb 0x140024ea8
nop dword [rax]
nop dword [rax + rax]
lea rdx, [rbp + 0x50]
add rdx, rax
inc rax
movzx ecx, byte [rbx + rdx]
xor byte [rdx], cl
cmp rax, 0x10
jb 0x140024e90
jmp 0x140024eba
movdqu xmm1, xmmword [rbp + 0x50]
movdqu xmm0, xmmword [r14]
xorps xmm1, xmm0
movdqu xmmword [rbp + 0x50], xmm1
mov rax, rsi
add r14, 0x10
add r15, 0x10
add rbx, 0x10
cmp rsi, 0x10
mov ecx, 0x2000000
cmovae rax, r8
sub rsi, rax
call fcn.1400173f0
test eax, eax
je 0x140024ef9
lea rcx, [rsp + 0x40]
shr rcx, 2
and ecx, 3
je 0x140024ef9
mov eax, 4
sub eax, ecx
jmp 0x140024efb
xor eax, eax
mov rcx, qword [rsp + 0x38]
mov edi, eax
cmp rdi, rcx
je 0x140024f2f
mov eax, dword [rsp + 0x30]
lea rdx, [rsp + 0x40]
lea rdx, [rdx + rcx*4]
inc eax
shl eax, 4
lea rcx, [rsp + 0x40]
movsxd r8, eax
lea rcx, [rcx + rdi*4]
call fcn.1400520e0
mov qword [rsp + 0x38], rdi
mov ecx, 0x2000000
call fcn.1400173f0
test eax, eax
je 0x140024f8a
mov rax, qword [rsp + 0x38]
lea rcx, [rsp + 0x40]
movdqu xmm1, xmmword [rcx + rax*4]
lea rcx, [rcx + rax*4]
movdqu xmm0, xmmword [rbp + 0x50]
mov eax, dword [rsp + 0x30]
add rcx, 0x10
xorps xmm1, xmm0
sub eax, 1
je 0x140024f7e
nop word [rax + rax]
aesenc xmm1, xmmword [rcx]
add rcx, 0x10
add eax, 0xffffffff
jne 0x140024f70
aesenclast xmm1, xmmword [rcx]
movdqu xmmword [rbp + 0x50], xmm1
jmp 0x140024fa6
lea r8, [rbp + 0x50]
lea rdx, [rbp + 0x50]
lea rcx, [rsp + 0x30]
call fcn.140020a10
mov edx, eax
test eax, eax
jne 0x1400250f8
mov r8d, 0x10
test rsi, rsi
jne 0x140024e70
mov rdi, qword [rsp + 0x28]
movups xmm0, xmmword [rbp + 0x50]
inc r13b
mov byte [rbp + 0xb3], r13b
movups xmmword [rbp + r12 + 0x60], xmm0
add r12, 0x10
cmp r12, 0x30
jl 0x140024e40
mov r8d, pe_nt_image_headers64
lea rdx, [rbp + 0x60]
lea rcx, [rsp + 0x30]
call fcn.14001fd20
mov edx, eax
test eax, eax
jne 0x1400250f8
mov rbx, qword [rsp + 0x20]
xor esi, esi
mov ecx, 0x2000000
call fcn.1400173f0
test eax, eax
je 0x140025026
lea rcx, [rsp + 0x40]
shr rcx, 2
and ecx, 3
je 0x140025026
mov eax, 4
sub eax, ecx
jmp 0x140025028
xor eax, eax
mov rcx, qword [rsp + 0x38]
mov edi, eax
cmp rdi, rcx
je 0x14002505c
mov eax, dword [rsp + 0x30]
lea rdx, [rsp + 0x40]
lea rdx, [rdx + rcx*4]
inc eax
shl eax, 4
lea rcx, [rsp + 0x40]
movsxd r8, eax
lea rcx, [rcx + rdi*4]
call fcn.1400520e0
mov qword [rsp + 0x38], rdi
mov ecx, 0x2000000
call fcn.1400173f0
test eax, eax
je 0x1400250bf
mov rax, qword [rsp + 0x38]
lea rcx, [rsp + 0x40]
movdqu xmm1, xmmword [rcx + rax*4]
lea rcx, [rcx + rax*4]
movdqu xmm0, xmmword [rbp + 0x80]
mov eax, dword [rsp + 0x30]
add rcx, 0x10
xorps xmm1, xmm0
sub eax, 1
je 0x1400250ae
nop word [rax + rax]
aesenc xmm1, xmmword [rcx]
add rcx, 0x10
add eax, 0xffffffff
jne 0x1400250a0
aesenclast xmm1, xmmword [rcx]
movdqu xmmword [rbp + 0x80], xmm1
xor edx, edx
jmp 0x1400250e5
lea r8, [rbp + 0x80]
lea rdx, [rbp + 0x80]
lea rcx, [rsp + 0x30]
call fcn.140020a10
mov edx, eax
test eax, eax
jne 0x1400250f8
movdqu xmm1, xmmword [rbp + 0x80]
movups xmmword [rbx], xmm1
add rbx, 0x10
add esi, 0x10
cmp esi, 0x30
jl 0x140025001
mov rsi, qword [rsp + 0x20]
mov r8d, 0x10
mov r14, qword [rsp + 0x368]
mov r13, qword [rsp + 0x370]
mov r12, qword [rsp + 0x3b8]
mov r15, qword [rsp + 0x360]
xor eax, eax
lea rdi, [rsp + 0x30]
mov ecx, 0x120
rep stosb byte [rdi], al
lea rdi, [rbp + 0xb0]
mov ecx, 0x1a0
rep stosb byte [rdi], al
lea rdi, [rbp + 0x60]
mov ecx, 0x30
rep stosb byte [rdi], al
lea rdi, [rbp + 0x90]
mov ecx, 0x20
rep stosb byte [rdi], al
lea rdi, [rbp + 0x50]
mov rcx, r8
rep stosb byte [rdi], al
test edx, edx
je 0x14002516f
mov rdi, rsi
mov ecx, 0x30
rep stosb byte [rdi], al
mov eax, edx
mov rcx, qword [rbp + 0x250]
xor rcx, rsp
call fcn.14002cd30
add rsp, 0x378
pop rdi
pop rsi
pop rbx
pop rbp
ret