Function at 0x140054fa0
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, 0x128
xorps xmm0, xmm0
movaps xmmword [rsp + 0x110], xmm0
movaps xmmword [rsp + 0x100], xmm0
movaps xmmword [rsp + 0xf0], xmm0
movaps xmmword [rsp + 0xe0], xmm0
movaps xmmword [rsp + 0xd0], xmm0
movaps xmmword [rsp + 0xc0], xmm0
movaps xmmword [rsp + 0xb0], xmm0
movaps xmmword [rsp + 0xa0], xmm0
movaps xmmword [rsp + 0x90], xmm0
movaps xmmword [rsp + 0x80], xmm0
movaps xmmword [rsp + 0x70], xmm0
movaps xmmword [rsp + 0x60], xmm0
movaps xmmword [rsp + 0x50], xmm0
movaps xmmword [rsp + 0x40], xmm0
movaps xmmword [rsp + 0x30], xmm0
mov dword [rsp + 0x24], 0
test r9, r9
je 0x140055307
mov rdi, r9
mov qword [rsp + 0x28], rcx
mov rax, qword [rsp + 0x190]
mov r9d, 8
xor r10d, r10d
nop dword [rax]
cmp r9, 0xf8
je 0x1400552dc
lea rcx, [r9 - 4]
cmp rcx, r8
ja 0x1400552f5
mov rcx, r10
or rcx, 1
mov r11d, dword [rdx + r9 - 8]
mov dword [rsp + r9 + 0x28], r11d
cmp rcx, rdi
je 0x1400550a0
cmp r9, r8
ja 0x1400552f2
add r10, 2
mov ecx, dword [rdx + r9 - 4]
mov dword [rsp + r9 + 0x2c], ecx
add r9, 8
cmp r10, rdi
jne 0x140055050
lea r11, [rax*4 + 4]
cmp r11, rdi
jbe 0x140055285
lea rbp, [rdi*4]
lea rsi, [rsp + rdi*4]
add rsi, 0x30
xor ebx, ebx
mov r15, rdi
nop word cs:[rax + rax]
lea rax, [rbx + rbp]
add rax, 0xfffffffffffffffc
cmp rax, 0xf0
jae 0x1400552af
movzx r9d, byte [rsi + rbx - 4]
mov byte [rsp + 0x24], r9b
lea rax, [rbx + rbp]
add rax, 0xfffffffffffffffd
mov ecx, pe_nt_image_headers64
cmp rax, 0xef
ja 0x1400552b7
movzx r8d, byte [rsi + rbx - 3]
mov byte [rsp + 0x25], r8b
lea rax, [rbx + rbp]
add rax, 0xfffffffffffffffe
cmp rax, 0xef
ja 0x1400552b7
movzx r10d, byte [rsi + rbx - 2]
mov byte [rsp + 0x26], r10b
lea rax, [rbx + rbp]
dec rax
cmp rax, 0xef
ja 0x1400552b7
movzx ecx, byte [rsi + rbx - 1]
mov byte [rsp + 0x27], cl
mov rax, r15
or rax, rdi
shr rax, 0x20
je 0x1400551d0
mov rax, r15
xor edx, edx
div rdi
mov r12, rax
movzx r13d, r9b
test rdx, rdx
je 0x1400551e3
cmp rdi, 7
jb 0x140055247
cmp rdx, 4
jne 0x140055247
movzx eax, r8b
movzx edx, r10b
movzx ecx, cl
lea r14, str.cw
movzx r9d, byte [r13 + r14]
mov byte [rsp + 0x24], r9b
movzx r8d, byte [rax + r14]
mov byte [rsp + 0x25], r8b
movzx r10d, byte [rdx + r14]
mov byte [rsp + 0x26], r10b
movzx ecx, byte [rcx + r14]
mov byte [rsp + 0x27], cl
jmp 0x140055247
mov eax, r15d
xor edx, edx
div edi
mov r12d, eax
movzx r13d, r9b
test rdx, rdx
jne 0x14005516e
mov ecx, 1
mov r8d, 3
lea rdx, [rsp + 0x25]
mov r14, r11
call fcn.1400548a0
mov r11, r14
movzx eax, byte [rsp + 0x24]
movzx ecx, byte [rsp + 0x25]
lea rdx, str.cw
movzx r8d, byte [rcx + rdx]
mov byte [rsp + 0x25], r8b
movzx ecx, byte [rsp + 0x26]
movzx r10d, byte [rcx + rdx]
mov byte [rsp + 0x26], r10b
movzx ecx, byte [r13 + rdx]
mov byte [rsp + 0x27], cl
lea r9, [0x1401c43b9]
movzx r9d, byte [r12 + r9]
xor r9b, byte [rax + rdx]
mov byte [rsp + 0x24], r9b
cmp rbx, 0xef
ja 0x1400552c8
xor r9b, byte [rsp + rbx + 0x30]
mov byte [rsi + rbx], r9b
xor r8b, byte [rsp + rbx + 0x31]
mov byte [rsi + rbx + 1], r8b
xor r10b, byte [rsp + rbx + 0x32]
mov byte [rsi + rbx + 2], r10b
xor cl, byte [rsp + rbx + 0x33]
mov byte [rsi + rbx + 3], cl
inc r15
add rbx, 4
cmp r11, r15
jne 0x1400550d0
lea rdx, [rsp + 0x30]
mov r8d, pe_nt_image_headers64
mov rcx, qword [rsp + 0x28]
call sub.VCRUNTIME140.dll_memcpy
nop
add rsp, 0x128
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea rcx, [rbx + rdi*4]
add rcx, 0xfffffffffffffffc
lea r8, [0x1401c45d0]
mov edx, pe_nt_image_headers64
call fcn.1401b8c50
lea r8, [0x1401c45b8]
mov edx, pe_nt_image_headers64
mov rcx, rbx
call fcn.1401b8c50
lea r8, [0x1401c45e8]
mov ecx, 0xf4
mov edx, pe_nt_image_headers64
call fcn.1401b9040
mov rcx, r9
lea rax, [0x1401c4600]
mov rdx, r8
mov r8, rax
call fcn.1401b9040
mov rcx, 0xfffffffffffffffc
lea r8, [0x1401c45d0]
mov edx, pe_nt_image_headers64
call fcn.1401b8c50
int3