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

Disassembly:
jmp 0x18001f740
push rbx
push r12
push r14
sub rsp, 0x30
mov r14, r9
mov r12, rdx
mov rbx, rcx
cmp r8d, 0x10
jge 0x18001f765
xor eax, eax
add rsp, 0x30
pop r14
pop r12
pop rbx
ret
movsxd rax, r8d
test r8d, r8d
jle 0x18001f9fa
mov qword [rsp + 0x50], rbp
sub r12, r9
mov qword [rsp + 0x58], rsi
mov qword [rsp + 0x60], rdi
mov qword [rsp + 0x28], r13
lea r13, str.cw
mov qword [rsp + 0x20], r15
lea r15, [rax - 1]
shr r15, 4
inc r15
nop
cmp qword [rbx + 0x20], 0
jne 0x18001f7c5
lea rdi, [rbx + 0x20]
mov esi, 4
movsxd rcx, dword [rbx]
call fcn.180002da6
mov qword [rdi], rax
lea rdi, [rdi + 8]
sub rsi, 1
jne 0x18001f7b0
mov eax, dword [rbx]
xor r8d, r8d
shl eax, 2
test eax, eax
jle 0x18001f819
lea r9, [r12 + r14]
nop word [rax + rax]
mov eax, r8d
mov ecx, r8d
and eax, 3
test r8d, r8d
jns 0x18001f7f5
lea ecx, [r8 + 3]
sub eax, 4
cdqe
inc r8d
sar ecx, 2
movsxd rdx, ecx
mov rcx, qword [rbx + rax*8 + 0x20]
movzx eax, byte [r9]
inc r9
mov byte [rdx + rcx], al
mov eax, dword [rbx]
shl eax, 2
cmp r8d, eax
jl 0x18001f7e0
xor edx, edx
mov rcx, rbx
call fcn.180002239
mov eax, dword [rbx + 8]
mov edi, 1
dec eax
cmp eax, edi
jl 0x18001f8f0
nop word [rax + rax]
lea r8, [rbx + 0x20]
mov r9d, 4
nop word [rax + rax]
mov rdx, qword [r8]
lea r8, [r8 + 8]
movzx eax, byte [rdx]
mov ecx, eax
and eax, 0xf
and rcx, 0xfffffffffffffff0
add rcx, rax
movzx eax, byte [rcx + r13]
mov byte [rdx], al
mov rdx, qword [r8 - 8]
movzx eax, byte [rdx + 1]
mov ecx, eax
and eax, 0xf
and rcx, 0xfffffffffffffff0
add rcx, rax
movzx eax, byte [rcx + r13]
mov byte [rdx + 1], al
mov rdx, qword [r8 - 8]
movzx eax, byte [rdx + 2]
mov ecx, eax
and eax, 0xf
and rcx, 0xfffffffffffffff0
add rcx, rax
movzx eax, byte [rcx + r13]
mov byte [rdx + 2], al
mov rdx, qword [r8 - 8]
movzx eax, byte [rdx + 3]
mov ecx, eax
and eax, 0xf
and rcx, 0xfffffffffffffff0
add rcx, rax
movzx eax, byte [rcx + r13]
mov byte [rdx + 3], al
sub r9, 1
jne 0x18001f850
mov rcx, rbx
call fcn.1800012b2
mov rcx, rbx
call fcn.180002900
mov edx, edi
mov rcx, rbx
call fcn.180002239
mov eax, dword [rbx + 8]
inc edi
dec eax
cmp edi, eax
jle 0x18001f840
lea r8, [rbx + 0x20]
mov r9d, 4
nop word [rax + rax]
mov rdx, qword [r8]
lea r8, [r8 + 8]
movzx eax, byte [rdx]
mov ecx, eax
and eax, 0xf
and rcx, 0xfffffffffffffff0
add rcx, rax
movzx eax, byte [rcx + r13]
mov byte [rdx], al
mov rdx, qword [r8 - 8]
movzx eax, byte [rdx + 1]
mov ecx, eax
and eax, 0xf
and rcx, 0xfffffffffffffff0
add rcx, rax
movzx eax, byte [rcx + r13]
mov byte [rdx + 1], al
mov rdx, qword [r8 - 8]
movzx eax, byte [rdx + 2]
mov ecx, eax
and eax, 0xf
and rcx, 0xfffffffffffffff0
add rcx, rax
movzx eax, byte [rcx + r13]
mov byte [rdx + 2], al
mov rdx, qword [r8 - 8]
movzx eax, byte [rdx + 3]
mov ecx, eax
and eax, 0xf
and rcx, 0xfffffffffffffff0
add rcx, rax
movzx eax, byte [rcx + r13]
mov byte [rdx + 3], al
sub r9, 1
jne 0x18001f900
mov rcx, rbx
call fcn.1800012b2
mov edx, dword [rbx + 8]
mov rcx, rbx
call fcn.180002239
mov eax, dword [rbx]
xor edx, edx
shl eax, 2
test eax, eax
jle 0x18001f9d3
mov r8, r14
nop dword [rax + rax]
mov eax, edx
mov ecx, edx
and eax, 3
test edx, edx
jns 0x18001f9b1
lea ecx, [rdx + 3]
sub eax, 4
sar ecx, 2
inc edx
movsxd rcx, ecx
cdqe
mov rax, qword [rbx + rax*8 + 0x20]
movzx ecx, byte [rcx + rax]
mov byte [r8], cl
inc r8
mov ecx, dword [rbx]
shl ecx, 2
cmp edx, ecx
jl 0x18001f9a0
add r14, 0x10
sub r15, 1
jne 0x18001f7a0
mov r15, qword [rsp + 0x20]
mov r13, qword [rsp + 0x28]
mov rdi, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x58]
mov rbp, qword [rsp + 0x50]
mov eax, 1
add rsp, 0x30
pop r14
pop r12
pop rbx
ret