Function at 0x180001000
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, 0x58
mov qword [rsp + 0x30], rdx
mov rax, qword [0x180028048]
xor rax, rsp
mov qword [rsp + 0x50], rax
mov r11d, 0xd6c8e74
xor edx, edx
lea r13, str.cw
cmp r11d, 0xee534968
jg 0x18000117d
jmp 0x180001240
mov r10d, dword [rsp + 0x48]
mov r8d, r12d
mov r12d, r14d
mov r14, r13
lea r13d, [r10*4]
mov ebp, dword [rsp + 0x48]
lea ebx, [rbp*4 - 0x20]
mov r11b, byte [rcx + rbx]
mov ebx, r11d
not bl
and bl, 0xf6
and r11b, 9
or r11b, bl
mov al, byte [rsp + 0x2f]
mov ebx, eax
not bl
and bl, 0xf6
and al, 9
or al, bl
xor al, r11b
mov byte [rcx + r13], al
lea eax, [rbp*4 - 0x1f]
mov r11b, byte [rcx + rax]
mov eax, r11d
not al
and al, 0xd6
and r11b, 0x29
or r11b, al
mov bl, byte [rsp + 0x2e]
mov eax, ebx
not al
and al, 0xd6
and bl, 0x29
or bl, al
xor bl, r11b
mov esi, r13d
not esi
mov eax, esi
and eax, 0xcdca1905
mov edi, r13d
and edi, 0x3235e6f8
or edi, eax
xor edi, 0xcdca1904
mov byte [rcx + rdi], bl
lea eax, [rbp*4 - 0x1e]
mov r11b, byte [rcx + rax]
mov eax, r11d
not al
and al, 0x8a
and r11b, 0x75
or r11b, al
mov bl, byte [rsp + 0x2c]
mov eax, ebx
not al
and al, 0x8a
and bl, 0x75
or bl, al
xor bl, r11b
lea eax, [r10*4 + 2]
mov byte [rcx + rax], bl
lea eax, [rbp*4 - 0x1d]
mov r10b, byte [rcx + rax]
mov eax, r10d
not al
and al, 0x34
and r10b, 0xcb
or r10b, al
mov bl, byte [rsp + 0x2d]
mov eax, ebx
not al
and al, 0x34
and bl, 0xcb
or bl, al
xor bl, r10b
and esi, 0xce6668d0
and r13d, 0x3199972c
or r13d, esi
xor r13d, 0xce6668d3
mov byte [rcx + r13], bl
mov r13, r14
mov r14d, r12d
mov r12d, r8d
mov r10d, dword [rsp + 0x48]
add r10d, 1
mov r11d, 0xebd72ff1
nop
cmp r11d, 0xee534968
jle 0x180001240
cmp r11d, 0x176d8462
jle 0x180001280
cmp r11d, 0x176d8463
je 0x180001307
cmp r11d, 0x1dd3fb44
je 0x180001357
cmp r11d, 0x2c87651b
jne 0x180001170
mov esi, dword [rsp + 0x44]
shl esi, 2
mov rdx, qword [rsp + 0x30]
movzx ebx, byte [rdx + rsi]
mov byte [rcx + rsi], bl
mov ebp, esi
not ebp
mov ebx, ebp
and ebx, 0x81088edf
mov eax, esi
and eax, 0x7ef77120
or eax, ebx
xor eax, 0x81088ede
movzx ebx, byte [rdx + rax]
mov byte [rcx + rax], bl
mov eax, ebp
and eax, 0x33651f4a
mov edi, esi
and edi, 0xcc9ae0b4
or edi, eax
xor edi, 0x33651f48
movzx eax, byte [rdx + rdi]
mov byte [rcx + rdi], al
and ebp, 0x9aa39957
and esi, 0x655c66a8
or esi, ebp
xor esi, 0x9aa39954
movzx eax, byte [rdx + rsi]
mov byte [rcx + rsi], al
mov edx, dword [rsp + 0x44]
add edx, 1
mov r11d, 0xd6c8e74
cmp r11d, 0xee534968
jg 0x18000117d
nop word cs:[rax + rax]
nop
cmp r11d, 0xe816cce8
jg 0x1800012c0
cmp r11d, 0x877fdc73
je 0x1800013e4
cmp r11d, 0xcfa0dce2
je 0x180001453
cmp r11d, 0x8366ce1d
jne 0x180001170
jmp 0x1800014d1
cmp r11d, 0xee534969
je 0x180001471
cmp r11d, 0xd6c8e74
jne 0x180001170
mov dword [rsp + 0x44], edx
mov eax, dword [rsp + 0x44]
cmp eax, 8
mov r11d, 0xcfa0dce2
mov eax, 0x2c87651b
jmp 0x1800012f1
cmp r11d, 0xe816cce9
je 0x180001045
cmp r11d, 0xebd72ff1
jne 0x180001170
mov dword [rsp + 0x48], r10d
mov eax, dword [rsp + 0x48]
cmp eax, 0x3c
mov r11d, 0x8366ce1d
mov eax, 0x1dd3fb44
cmovb r11d, eax
cmp r11d, 0xee534968
jg 0x18000117d
jmp 0x180001240
movzx eax, byte [rsp + 0x4c]
movzx eax, byte [rax + r13]
mov byte [rsp + 0x2f], al
movzx eax, byte [rsp + 0x4d]
movzx eax, byte [rax + r13]
mov byte [rsp + 0x2e], al
movzx eax, byte [rsp + 0x4e]
movzx eax, byte [rax + r13]
mov byte [rsp + 0x2c], al
movzx eax, byte [rsp + 0x4f]
movzx eax, byte [rax + r13]
mov byte [rsp + 0x2d], al
mov r11d, 0xe816cce9
cmp r11d, 0xee534968
jg 0x18000117d
jmp 0x180001240
mov eax, dword [rsp + 0x48]
lea ebp, [rax*4 - 4]
movzx ebx, byte [rcx + rbp]
mov byte [rsp + 0x3c], bl
lea ebp, [rax*4 - 3]
movzx ebx, byte [rcx + rbp]
mov byte [rsp + 0x3d], bl
lea ebp, [rax*4 - 2]
movzx ebx, byte [rcx + rbp]
mov byte [rsp + 0x3e], bl
lea eax, [rax*4 - 1]
movzx eax, byte [rcx + rax]
mov byte [rsp + 0x3f], al
mov ebp, dword [rsp + 0x48]
mov eax, ebp
xor eax, 0xfffffff8
and eax, ebp
mov dword [rsp + 0x40], eax
cmp dword [rsp + 0x40], 0
mov r11d, 0xee534969
mov eax, 0x877fdc73
cmove r11d, eax
movzx r15d, byte [rsp + 0x3c]
movzx r14d, byte [rsp + 0x3d]
movzx r12d, byte [rsp + 0x3e]
movzx r9d, byte [rsp + 0x3f]
cmp r11d, 0xee534968
jg 0x18000117d
jmp 0x180001240
movzx eax, byte [rsp + 0x3d]
movzx r15d, byte [rax + r13]
movzx eax, byte [rsp + 0x3e]
movzx r14d, byte [rax + r13]
movzx eax, byte [rsp + 0x3f]
movzx r12d, byte [rax + r13]
movzx eax, byte [rsp + 0x3c]
movzx r9d, byte [rax + r13]
mov eax, dword [rsp + 0x48]
shr rax, 3
lea rbp, [0x18001d420]
movzx ebx, byte [rax + rbp]
mov eax, ebx
not al
and al, 0x76
and bl, 0x89
or bl, al
mov eax, r15d
not al
and al, 0x76
and r15b, 0x89
or r15b, al
xor r15b, bl
mov r11d, 0xee534969
cmp r11d, 0xee534968
jg 0x18000117d
jmp 0x180001240
mov r11d, 0xebd72ff1
mov r10d, 8
cmp r11d, 0xee534968
jg 0x18000117d
jmp 0x180001240
mov byte [rsp + 0x4c], r15b
mov byte [rsp + 0x4d], r14b
mov byte [rsp + 0x4e], r12b
mov byte [rsp + 0x4f], r9b
mov eax, dword [rsp + 0x40]
cmp eax, 4
mov r11d, 0xe816cce9
mov eax, 0x176d8463
cmove r11d, eax
movzx eax, byte [rsp + 0x4f]
mov byte [rsp + 0x2d], al
movzx eax, byte [rsp + 0x4e]
mov byte [rsp + 0x2c], al
movzx eax, byte [rsp + 0x4d]
mov byte [rsp + 0x2e], al
movzx eax, byte [rsp + 0x4c]
mov byte [rsp + 0x2f], al
cmp r11d, 0xee534968
jg 0x18000117d
jmp 0x180001240
mov rcx, qword [rsp + 0x50]
xor rcx, rsp
call fcn.180007580
nop
add rsp, 0x58
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret