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

Disassembly:
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbp
push rdi
sub rsp, 0x188
lea rbp, [rsp + 0x20]
mov rdi, rsp
mov ecx, 0x62
mov eax, 0xcccccccc
rep stosd dword [rdi], eax
mov rcx, qword [rsp + 0x1a8]
lea rcx, [0x140027005]
call fcn.1400113bb
mov dword [rbp + 4], 0
jmp 0x1400138ac
mov eax, dword [rbp + 4]
inc eax
mov dword [rbp + 4], eax
cmp dword [rbp + 4], 8
jae 0x14001396b
mov eax, dword [rbp + 4]
shl eax, 2
mov eax, eax
mov ecx, dword [rbp + 4]
shl ecx, 2
mov ecx, ecx
mov rdx, qword [rbp + 0x180]
mov r8, qword [rbp + 0x188]
movzx eax, byte [r8 + rax]
mov byte [rdx + rcx], al
mov eax, dword [rbp + 4]
lea eax, [rax*4 + 1]
mov eax, eax
mov ecx, dword [rbp + 4]
lea ecx, [rcx*4 + 1]
mov ecx, ecx
mov rdx, qword [rbp + 0x180]
mov r8, qword [rbp + 0x188]
movzx eax, byte [r8 + rax]
mov byte [rdx + rcx], al
mov eax, dword [rbp + 4]
lea eax, [rax*4 + 2]
mov eax, eax
mov ecx, dword [rbp + 4]
lea ecx, [rcx*4 + 2]
mov ecx, ecx
mov rdx, qword [rbp + 0x180]
mov r8, qword [rbp + 0x188]
movzx eax, byte [r8 + rax]
mov byte [rdx + rcx], al
mov eax, dword [rbp + 4]
lea eax, [rax*4 + 3]
mov eax, eax
mov ecx, dword [rbp + 4]
lea ecx, [rcx*4 + 3]
mov ecx, ecx
mov rdx, qword [rbp + 0x180]
mov r8, qword [rbp + 0x188]
movzx eax, byte [r8 + rax]
mov byte [rdx + rcx], al
jmp 0x1400138a4
mov dword [rbp + 4], 8
jmp 0x14001397c
mov eax, dword [rbp + 4]
inc eax
mov dword [rbp + 4], eax
cmp dword [rbp + 4], 0x3c
jae 0x140013d10
mov eax, dword [rbp + 4]
lea eax, [rax*4 - 4]
mov dword [rbp + 0x44], eax
mov eax, dword [rbp + 0x44]
mov eax, eax
mov ecx, 1
imul rcx, rcx, 0
mov rdx, qword [rbp + 0x180]
movzx eax, byte [rdx + rax]
mov byte [rbp + rcx + 0x64], al
mov eax, dword [rbp + 0x44]
inc eax
mov eax, eax
mov ecx, 1
imul rcx, rcx, 1
mov rdx, qword [rbp + 0x180]
movzx eax, byte [rdx + rax]
mov byte [rbp + rcx + 0x64], al
mov eax, dword [rbp + 0x44]
add eax, 2
mov eax, eax
mov ecx, 1
imul rcx, rcx, 2
mov rdx, qword [rbp + 0x180]
movzx eax, byte [rdx + rax]
mov byte [rbp + rcx + 0x64], al
mov eax, dword [rbp + 0x44]
add eax, 3
mov eax, eax
mov ecx, 1
imul rcx, rcx, 3
mov rdx, qword [rbp + 0x180]
movzx eax, byte [rdx + rax]
mov byte [rbp + rcx + 0x64], al
xor edx, edx
mov eax, dword [rbp + 4]
mov ecx, 8
div ecx
mov eax, edx
test eax, eax
jne 0x140013b7a
mov eax, 1
imul rax, rax, 0
movzx eax, byte [rbp + rax + 0x64]
mov byte [rbp + 0x84], al
mov eax, 1
imul rax, rax, 1
mov ecx, 1
imul rcx, rcx, 0
movzx eax, byte [rbp + rax + 0x64]
mov byte [rbp + rcx + 0x64], al
mov eax, 1
imul rax, rax, 2
mov ecx, 1
imul rcx, rcx, 1
movzx eax, byte [rbp + rax + 0x64]
mov byte [rbp + rcx + 0x64], al
mov eax, 1
imul rax, rax, 3
mov ecx, 1
imul rcx, rcx, 2
movzx eax, byte [rbp + rax + 0x64]
mov byte [rbp + rcx + 0x64], al
mov eax, 1
imul rax, rax, 3
movzx ecx, byte [rbp + 0x84]
mov byte [rbp + rax + 0x64], cl
mov eax, 1
imul rax, rax, 0
movzx eax, byte [rbp + rax + 0x64]
lea rcx, str.cw
mov edx, 1
imul rdx, rdx, 0
movzx eax, byte [rcx + rax]
mov byte [rbp + rdx + 0x64], al
mov eax, 1
imul rax, rax, 1
movzx eax, byte [rbp + rax + 0x64]
lea rcx, str.cw
mov edx, 1
imul rdx, rdx, 1
movzx eax, byte [rcx + rax]
mov byte [rbp + rdx + 0x64], al
mov eax, 1
imul rax, rax, 2
movzx eax, byte [rbp + rax + 0x64]
lea rcx, str.cw
mov edx, 1
imul rdx, rdx, 2
movzx eax, byte [rcx + rax]
mov byte [rbp + rdx + 0x64], al
mov eax, 1
imul rax, rax, 3
movzx eax, byte [rbp + rax + 0x64]
lea rcx, str.cw
mov edx, 1
imul rdx, rdx, 3
movzx eax, byte [rcx + rax]
mov byte [rbp + rdx + 0x64], al
mov eax, 1
imul rax, rax, 0
movzx eax, byte [rbp + rax + 0x64]
mov dword [rbp + 0x154], eax
xor edx, edx
mov eax, dword [rbp + 4]
mov ecx, 8
div ecx
mov eax, eax
lea rcx, [0x14001ddb0]
movzx eax, byte [rcx + rax]
mov ecx, dword [rbp + 0x154]
xor ecx, eax
mov eax, ecx
mov ecx, 1
imul rcx, rcx, 0
mov byte [rbp + rcx + 0x64], al
xor edx, edx
mov eax, dword [rbp + 4]
mov ecx, 8
div ecx
mov eax, edx
cmp eax, 4
jne 0x140013c29
mov eax, 1
imul rax, rax, 0
movzx eax, byte [rbp + rax + 0x64]
lea rcx, str.cw
mov edx, 1
imul rdx, rdx, 0
movzx eax, byte [rcx + rax]
mov byte [rbp + rdx + 0x64], al
mov eax, 1
imul rax, rax, 1
movzx eax, byte [rbp + rax + 0x64]
lea rcx, str.cw
mov edx, 1
imul rdx, rdx, 1
movzx eax, byte [rcx + rax]
mov byte [rbp + rdx + 0x64], al
mov eax, 1
imul rax, rax, 2
movzx eax, byte [rbp + rax + 0x64]
lea rcx, str.cw
mov edx, 1
imul rdx, rdx, 2
movzx eax, byte [rcx + rax]
mov byte [rbp + rdx + 0x64], al
mov eax, 1
imul rax, rax, 3
movzx eax, byte [rbp + rax + 0x64]
lea rcx, str.cw
mov edx, 1
imul rdx, rdx, 3
movzx eax, byte [rcx + rax]
mov byte [rbp + rdx + 0x64], al
mov eax, dword [rbp + 4]
shl eax, 2
mov dword [rbp + 0x24], eax
mov eax, dword [rbp + 4]
lea eax, [rax*4 - 0x20]
mov dword [rbp + 0x44], eax
mov eax, dword [rbp + 0x44]
mov eax, eax
mov rcx, qword [rbp + 0x180]
movzx eax, byte [rcx + rax]
mov ecx, 1
imul rcx, rcx, 0
movzx ecx, byte [rbp + rcx + 0x64]
xor eax, ecx
mov ecx, dword [rbp + 0x24]
mov ecx, ecx
mov rdx, qword [rbp + 0x180]
mov byte [rdx + rcx], al
mov eax, dword [rbp + 0x44]
inc eax
mov eax, eax
mov rcx, qword [rbp + 0x180]
movzx eax, byte [rcx + rax]
mov ecx, 1
imul rcx, rcx, 1
movzx ecx, byte [rbp + rcx + 0x64]
xor eax, ecx
mov ecx, dword [rbp + 0x24]
inc ecx
mov ecx, ecx
mov rdx, qword [rbp + 0x180]
mov byte [rdx + rcx], al
mov eax, dword [rbp + 0x44]
add eax, 2
mov eax, eax
mov rcx, qword [rbp + 0x180]
movzx eax, byte [rcx + rax]
mov ecx, 1
imul rcx, rcx, 2
movzx ecx, byte [rbp + rcx + 0x64]
xor eax, ecx
mov ecx, dword [rbp + 0x24]
add ecx, 2
mov ecx, ecx
mov rdx, qword [rbp + 0x180]
mov byte [rdx + rcx], al
mov eax, dword [rbp + 0x44]
add eax, 3
mov eax, eax
mov rcx, qword [rbp + 0x180]
movzx eax, byte [rcx + rax]
mov ecx, 1
imul rcx, rcx, 3
movzx ecx, byte [rbp + rcx + 0x64]
xor eax, ecx
mov ecx, dword [rbp + 0x24]
add ecx, 3
mov ecx, ecx
mov rdx, qword [rbp + 0x180]
mov byte [rdx + rcx], al
jmp 0x140013974
lea rcx, [rbp - 0x20]
lea rdx, [0x14001df80]
call fcn.140011352
lea rsp, [rbp + 0x168]
pop rdi
pop rbp
ret