Function at 0x180001524
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, 0x18
mov qword [rsp + 0x10], rdx
mov qword [rsp], rcx
mov rax, qword [rsp]
movzx eax, byte [rax + 8]
mov dword [rsp + 0xc], eax
mov ebp, 0xe95d3f78
lea r11, [0x180008900]
cmp ebp, 0x14c3c743
jle 0x180001597
cmp ebp, 0x1a554d96
jle 0x1800015cd
cmp ebp, 0x29759fe1
je 0x18000165d
cmp ebp, 0x3e38ef8c
jne 0x1800018fa
mov r10, qword [rsp]
cmp edx, dword [r10 + 0x3d4]
mov ebp, 0x982db9a
mov ecx, 0x29759fe1
cmovl ebp, ecx
jmp 0x180001555
cmp ebp, 0x345ec7
jg 0x18000163b
cmp ebp, 0x8055f49e
je 0x18000175f
cmp ebp, 0xe95d3f78
jne 0x180001555
cmp dword [rsp + 0xc], 0
mov ebp, 0x1733cc44
mov r10d, 0x345ec8
cmove ebp, r10d
jmp 0x180001555
cmp ebp, 0x14c3c744
je 0x18000176b
cmp ebp, 0x1733cc44
jne 0x180001555
mov r10, qword [rsp]
mov rcx, qword [rsp + 0x10]
mov r14d, dword [rcx]
bswap r14d
xor r14d, dword [r10 + 0x1ec]
mov r15d, dword [rcx + 4]
bswap r15d
xor r15d, dword [r10 + 0x1f0]
mov r13d, dword [rcx + 8]
bswap r13d
xor r13d, dword [r10 + 0x1f4]
mov eax, dword [rcx + 0xc]
add rcx, 0x10
mov qword [rsp + 0x10], rcx
bswap eax
xor eax, dword [r10 + 0x1f8]
mov ebp, 0x3e38ef8c
mov edx, 1
jmp 0x180001555
cmp ebp, 0x345ec8
je 0x1800018f0
cmp ebp, 0x982db9a
jne 0x180001555
mov ebp, 0x14c3c744
jmp 0x180001555
mov r10, qword [rsp]
mov edi, r14d
shr edi, 0x18
mov esi, eax
shr esi, 0x10
mov ecx, 0xff
and esi, ecx
lea r9, [0x180008500]
mov esi, dword [r9 + rsi*4]
lea r12, [0x180008100]
xor esi, dword [r12 + rdi*4]
mov edi, r13d
shr edi, 8
and edi, ecx
xor esi, dword [r11 + rdi*4]
mov edi, r15d
and edi, ecx
mov dword [rsp + 8], edx
lea rdx, [0x180008d00]
xor esi, dword [rdx + rdi*4]
mov ebx, r15d
shr ebx, 0x18
mov edi, r14d
shr edi, 0x10
and edi, ecx
mov edi, dword [r9 + rdi*4]
xor edi, dword [r12 + rbx*4]
mov ebx, eax
shr ebx, 8
and ebx, ecx
xor edi, dword [r11 + rbx*4]
mov ebx, r13d
and ebx, ecx
xor edi, dword [rdx + rbx*4]
mov ebp, r13d
shr ebp, 0x18
mov ebx, r15d
shr ebx, 0x10
and ebx, ecx
mov ebx, dword [r9 + rbx*4]
xor ebx, dword [r12 + rbp*4]
mov ebp, r14d
shr ebp, 8
and ebp, ecx
xor ebx, dword [r11 + rbp*4]
mov ebp, eax
and ebp, ecx
xor ebx, dword [rdx + rbp*4]
shr eax, 0x18
shr r13d, 0x10
and r13d, ecx
mov r13d, dword [r9 + r13*4]
xor r13d, dword [r12 + rax*4]
shr r15d, 8
and r15d, ecx
xor r13d, dword [r11 + r15*4]
and r14d, ecx
xor r13d, dword [rdx + r14*4]
mov edx, dword [rsp + 8]
movsxd rax, edx
shl rax, 5
xor esi, dword [r10 + rax + 0x1ec]
xor edi, dword [r10 + rax + 0x1f0]
xor ebx, dword [r10 + rax + 0x1f4]
xor r13d, dword [r10 + rax + 0x1f8]
mov ebp, 0x8055f49e
mov eax, r13d
mov r13d, ebx
mov r15d, edi
mov r14d, esi
jmp 0x180001555
inc edx
mov ebp, 0x3e38ef8c
jmp 0x180001555
mov r10, qword [rsp]
mov rsi, qword [rsp]
movsxd rsi, dword [rsi + 0x3d4]
shl rsi, 5
mov r12d, dword [r10 + rsi + 0x1ec]
mov ebp, r14d
mov rbx, rbp
shr rbx, 0x18
mov edi, r12d
shr edi, 0x18
lea rcx, [0x180009100]
xor dil, byte [rbx + rcx]
mov byte [r8], dil
mov edi, eax
shr edi, 0x10
mov r9d, 0xff
and rdi, r9
mov ebx, r12d
shr ebx, 0x10
xor bl, byte [rdi + rcx]
mov byte [r8 + 1], bl
mov edi, r13d
shr edi, 8
and rdi, r9
mov ebx, r12d
shr ebx, 8
xor bl, byte [rdi + rcx]
mov byte [r8 + 2], bl
mov ebx, r15d
mov rdi, rbx
and rdi, r9
xor r12b, byte [rdi + rcx]
mov byte [r8 + 3], r12b
mov edi, dword [r10 + rsi + 0x1f0]
shr rbx, 0x18
mov r12d, edi
shr r12d, 0x18
xor r12b, byte [rbx + rcx]
mov byte [r8 + 4], r12b
mov ebx, r14d
shr ebx, 0x10
and rbx, r9
mov r12d, edi
shr r12d, 0x10
xor r12b, byte [rbx + rcx]
mov byte [r8 + 5], r12b
mov ebx, eax
shr ebx, 8
and rbx, r9
mov r12d, edi
shr r12d, 8
xor r12b, byte [rbx + rcx]
mov byte [r8 + 6], r12b
mov ebx, r13d
mov r12, rbx
and r12, r9
xor dil, byte [r12 + rcx]
mov byte [r8 + 7], dil
mov edi, dword [r10 + rsi + 0x1f4]
shr rbx, 0x18
mov r12d, edi
shr r12d, 0x18
xor r12b, byte [rbx + rcx]
mov byte [r8 + 8], r12b
mov ebx, r15d
shr ebx, 0x10
and rbx, r9
mov r12d, edi
shr r12d, 0x10
xor r12b, byte [rbx + rcx]
mov byte [r8 + 9], r12b
mov ebx, r14d
shr ebx, 8
and rbx, r9
mov r12d, edi
shr r12d, 8
xor r12b, byte [rbx + rcx]
mov byte [r8 + 0xa], r12b
mov ebx, eax
mov r12, rbx
and r12, r9
xor dil, byte [r12 + rcx]
mov byte [r8 + 0xb], dil
mov r10d, dword [r10 + rsi + 0x1f8]
shr rbx, 0x18
mov esi, r10d
shr esi, 0x18
xor sil, byte [rbx + rcx]
mov byte [r8 + 0xc], sil
mov esi, r13d
shr esi, 0x10
and rsi, r9
mov edi, r10d
shr edi, 0x10
xor dil, byte [rsi + rcx]
mov byte [r8 + 0xd], dil
mov esi, r15d
shr esi, 8
and rsi, r9
mov edi, r10d
shr edi, 8
xor dil, byte [rsi + rcx]
mov byte [r8 + 0xe], dil
and rbp, r9
xor r10b, byte [rbp + rcx]
mov byte [r8 + 0xf], r10b
mov ebp, 0x1a554d97
jmp 0x180001555
cmp ebp, 0x1a554d97
jne 0x180001555
add rsp, 0x18
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret