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, 0x40
mov qword [rsp + 0x30], rdx
mov eax, 0x2f9209ba
xor r11d, r11d
lea r10, str.cw
jmp 0x180001060
movzx eax, byte [rsp + 0x10]
movzx r13d, byte [rax + r10]
movzx eax, byte [rsp + 0x11]
movzx eax, byte [rax + r10]
mov byte [rsp + 0xc], al
movzx eax, byte [rsp + 0x12]
movzx eax, byte [rax + r10]
mov byte [rsp + 0xb], al
movzx eax, byte [rsp + 0x13]
movzx eax, byte [rax + r10]
mov byte [rsp + 0xa], al
mov eax, 0x225ac03c
nop
cmp eax, 0x15dba853
jle 0x1800010b0
cmp eax, 0x28e4a4e2
jle 0x180001290
cmp eax, 0x28e4a4e3
je 0x180001026
cmp eax, 0x41718853
je 0x180001676
cmp eax, 0x2f9209ba
jne 0x180001060
mov dword [rsp + 0x1c], r11d
mov eax, dword [rsp + 0x1c]
cmp eax, 8
mov eax, 0x8fddcdee
mov edx, 0xb3813464
cmovb eax, edx
jmp 0x180001060
cmp eax, 0x95d57b37
jle 0x180001650
cmp eax, 0x95d57b38
je 0x1800016d4
cmp eax, 0xb3813464
jne 0x180001838
mov r14d, dword [rsp + 0x1c]
shl r14d, 2
mov r8, qword [rsp + 0x30]
movzx edx, byte [r8 + r14]
mov byte [rcx + r14], dl
mov r9d, r14d
not r9d
mov ebx, r14d
or ebx, 0xa2f50944
mov ebp, r9d
or ebp, 0x5d0af6bb
xor ebp, ebx
mov ebx, ebp
not ebx
and ebx, 0x26a6fe9c
and ebp, 0xd9590162
or ebp, ebx
mov ebx, ebp
xor ebx, 0x730c0821
mov esi, r14d
or esi, r9d
mov edi, esi
not edi
xor ebp, 0x8453f7d8
mov edx, ebp
and edx, 0x88b29016
and ebx, 0x774d6fe9
or ebx, edx
or ebp, esi
and esi, 0x88b29016
and edi, 0x774d6fe8
or edi, esi
xor edi, ebx
not ebp
or ebp, edi
movzx edx, byte [r8 + rbp]
mov byte [rcx + rbp], dl
mov edx, r9d
and edx, 0x1a708f79
mov ebp, r14d
and ebp, 0xe58f7084
or ebp, edx
mov eax, ebp
xor eax, 0xe58f7086
mov r11d, ebp
xor r11d, 0x1a708f79
mov ebx, r11d
or ebx, 0xa0a8759b
mov edx, r14d
xor edx, 0x5f578a64
and edx, r14d
mov esi, edx
not esi
mov r15d, ebx
and r15d, 0x235f0e48
mov edi, eax
and edi, 0x5c008024
or edi, r15d
or ebx, esi
and esi, 0x235f0e48
and edx, 0xdca0f1b4
or edx, esi
xor edx, edi
not ebx
or ebx, edx
mov edx, ebx
not edx
and edx, 0x5f578a66
and ebx, 0xa0a87598
or ebx, edx
and r11d, 0xb4bf1dc8
and eax, 0x4b40e234
or eax, r11d
xor eax, 0x4b40e236
xor ebp, 0xe58f7084
or ebp, eax
mov eax, ebp
not eax
and eax, 0x46a0bf9
and ebp, 0xfb95f404
or ebp, eax
mov eax, ebp
xor eax, 0xd385b404
xor ebp, 0x46a0bfb
mov edx, ebx
not edx
mov edi, edx
and edi, 0x287849ca
and ebx, 0xd787b634
or ebx, edi
or edx, ebp
and ebp, 0x287849ca
and eax, 0xd787b635
or eax, ebp
xor eax, ebx
not edx
or edx, eax
movzx eax, byte [r8 + rdx]
mov byte [rcx + rdx], al
and r9d, 0x6ced8d01
and r14d, 0x931272fc
or r14d, r9d
mov eax, r14d
xor eax, 0x60c98c02
xor r14d, 0x1202623c
and r14d, 0x1e26633c
and eax, 0xe1d99cc3
or eax, r14d
xor eax, 0x1e26633c
movzx edx, byte [r8 + rax]
mov byte [rcx + rax], dl
mov r11d, dword [rsp + 0x1c]
add r11d, 1
mov eax, 0x2f9209ba
jmp 0x180001060
cmp eax, 0x15dba854
je 0x1800016f2
cmp eax, 0x225ac03c
jne 0x180001060
mov ebp, dword [rsp + 0x14]
shl ebp, 2
mov edx, dword [rsp + 0x14]
lea eax, [rdx*4 - 0x20]
mov rdi, rdx
mov qword [rsp + 0x38], rdx
movzx eax, byte [rcx + rax]
mov edx, eax
mov ebx, r13d
xor bl, al
and bl, al
not al
and al, 0xca
and dl, 0x35
or dl, al
xor dl, r13b
xor dl, 0xca
and dl, r13b
mov eax, edx
not al
mov r9d, ebx
not r9b
mov dword [rsp + 0x2c], r11d
mov r11d, eax
and r11b, 0x60
and dl, 0x9f
or dl, r11b
or al, r9b
and r9b, 0x60
and bl, 0x9f
or bl, r9b
xor bl, dl
not al
or al, bl
mov byte [rcx + rbp], al
lea eax, [rdi*4 - 0x1f]
movzx ebx, byte [rcx + rax]
not bl
mov eax, ebx
movzx edx, byte [rsp + 0xc]
xor al, dl
not al
and al, dl
or bl, dl
mov esi, ebp
mov byte [rsp + 0x1b], r13b
mov edx, ebp
mov r11d, ebp
mov r9d, ebp
xor r9d, 0x13f00770
and r9d, ebp
mov edi, ebp
mov dword [rsp + 0x28], ebp
mov r15d, ebp
mov r14d, ebp
xor r14d, 0x878e77b8
and r14d, ebp
mov r12d, ebp
not r12d
or esi, 0xf52526c7
mov ebp, r12d
or ebp, 0xadad938
xor ebp, esi
mov esi, ebp
not esi
and esi, 0xadad939
and ebp, 0xf52526c4
or ebp, esi
or edx, r12d
mov dword [rsp + 0x24], edx
mov edi, edx
not edi
mov esi, edi
and esi, 0x9ea9fa0c
mov r8d, edx
and r8d, 0x615605f2
or r8d, esi
xor r8d, 0x615605f2
mov esi, ebp
and esi, r8d
xor r8d, ebp
mov ebp, eax
not bpl
mov rdx, rcx
mov r10d, ebp
and r10b, 0x16
and al, 0xe9
or al, r10b
mov r10d, ebx
not r10b
or bpl, bl
and bl, 0x16
and r10b, 0xe9
or r10b, bl
xor r10b, al
not bpl
or bpl, r10b
or r8d, esi
mov byte [rcx + r8], bpl
mov r13, qword [rsp + 0x38]
lea eax, [r13*4 - 0x1e]
movzx esi, byte [rcx + rax]
mov r8d, esi
not r8b
xor r11d, 0x13f00771
and r11d, r12d
mov eax, r11d
not eax
mov ebp, eax
and ebp, 0x1101a8a2
and r11d, 0xeefe575c
or r11d, ebp
mov ebp, r9d
not ebp
or eax, ebp
and ebp, 0x1101a8a3
and r9d, 0xeefe575c
or r9d, ebp
mov r10d, r8d
and r10b, 0xc
mov ebp, esi
and bpl, 0x40
or bpl, r10b
xor bpl, 0x40
movzx ecx, byte [rsp + 0xb]
mov r10d, ecx
not r10b
and r8b, 0x22
and sil, 0x91
or sil, r8b
mov ebx, ecx
xor bl, 0x4c
and r10b, bl
and bl, cl
or bpl, 0x22
xor bpl, sil
mov r8d, r10d
and r8b, bl
xor bl, r10b
lea r10, str.cw
mov rcx, rdx
or bl, r8b
mov r8d, ebp
not r8b
and r8b, bl
not bl
and bl, bpl
or bl, r8b
xor r9d, r11d
mov r11d, dword [rsp + 0x2c]
not eax
or eax, r9d
mov ebp, eax
not ebp
and ebp, 0x71f9f637
and eax, 0x8e0609c8
or eax, ebp
mov ebp, eax
xor ebp, 0x42014040
mov edx, dword [rsp + 0x28]
and edx, 0xed6a95c0
mov esi, r12d
and esi, 0x12956a3e
or esi, edx
xor esi, 0x12956a3c
mov edx, r12d
and edx, 0xfffffffd
or edx, esi
mov esi, edx
not esi
and esi, 0x23ad33c0
and edx, 0xdc52cc3e
or edx, esi
xor eax, 0x9df60ebb
mov esi, eax
and esi, 0xa4bab72e
and ebp, 0x5b4548d1
or ebp, esi
mov esi, edx
xor esi, 0x58404810
xor edx, 0x23ad33c1
or eax, edx
and edx, 0xa4bab72e
and esi, 0x5b4548d1
or esi, edx
xor esi, ebp
not eax
or eax, esi
mov byte [rcx + rax], bl
lea eax, [r13*4 - 0x1d]
movzx ebx, byte [rcx + rax]
mov r9d, ebx
mov eax, ebx
xor al, 0x5f
and al, bl
not bl
and bl, 0xb
and r9b, 0x54
or r9b, bl
xor r9b, 0x54
movzx edx, byte [rsp + 0xa]
mov r8d, edx
not r8b
and r8b, 0x84
mov ebx, edx
and bl, 0x7b
or bl, r8b
mov r8d, ebx
xor r8b, 0x7b
xor bl, 0xdb
and bl, r8b
and dl, 0xa0
mov r8d, r9d
and r8b, al
xor al, r9b
or al, r8b
mov r8d, ebx
and r8b, dl
xor dl, bl
or dl, r8b
mov ebx, eax
not bl
and bl, 0x3d
and al, 0xc2
or al, bl
mov ebx, edx
not bl
and bl, 0x3d
and dl, 0xc2
or dl, bl
xor dl, al
or r15d, 0x78718844
mov eax, r14d
not eax
mov ebp, r15d
and ebp, 0xda4a580c
and r12d, 0x58427b1
or r12d, ebp
or r15d, eax
and eax, 0xda4a580e
and r14d, 0x25b5a7f0
or r14d, eax
xor r14d, r12d
not r15d
or r15d, r14d
mov eax, r15d
not eax
and eax, 0x878e77b8
and r15d, 0x78718847
or r15d, eax
mov eax, r15d
not eax
mov ebp, eax
and ebp, 0x51eb2da
and r15d, 0xfae14d25
or r15d, ebp
mov ebp, dword [rsp + 0x24]
or eax, ebp
and ebp, 0x51eb2da
and edi, 0xfae14d24
or edi, ebp
movzx r13d, byte [rsp + 0x1b]
xor edi, r15d
not eax
or eax, edi
mov byte [rcx + rax], dl
mov r12d, dword [rsp + 0x14]
add r12d, 1
mov eax, 0x95d57b38
jmp 0x180001060
cmp eax, 0x825dcba9
je 0x180001793
cmp eax, 0x8fddcdee
jne 0x180001060
mov eax, 0x95d57b38
mov r12d, 8
jmp 0x180001060
movzx eax, byte [rsp + 6]
mov byte [rsp + 0x10], al
movzx eax, byte [rsp + 9]
mov byte [rsp + 0x11], al
movzx eax, byte [rsp + 8]
mov byte [rsp + 0x12], al
movzx eax, byte [rsp + 7]
mov byte [rsp + 0x13], al
mov eax, dword [rsp + 0x20]
cmp eax, 4
mov eax, 0x225ac03c
mov edx, 0x28e4a4e3
cmove eax, edx
movzx edx, byte [rsp + 0x13]
mov byte [rsp + 0xa], dl
movzx edx, byte [rsp + 0x12]
mov byte [rsp + 0xb], dl
movzx edx, byte [rsp + 0x11]
mov byte [rsp + 0xc], dl
movzx r13d, byte [rsp + 0x10]
jmp 0x180001060
mov dword [rsp + 0x14], r12d
mov eax, dword [rsp + 0x14]
cmp eax, 0x3c
mov eax, 0xc99434f0
mov edx, 0x825dcba9
cmovb eax, edx
jmp 0x180001060
movzx eax, byte [rsp + 5]
movzx eax, byte [rsp + 0xd]
movzx eax, byte [rax + r10]
movzx edx, byte [rsp + 0xe]
movzx edx, byte [rdx + r10]
mov byte [rsp + 9], dl
movzx edx, byte [rsp + 0xf]
movzx edx, byte [rdx + r10]
mov byte [rsp + 8], dl
movzx edx, byte [rsp + 5]
movzx edx, byte [rdx + r10]
mov byte [rsp + 7], dl
mov edx, dword [rsp + 0x14]
shr rdx, 3
lea rbp, [0x180035460]
movzx r8d, byte [rdx + rbp]
mov edx, r8d
not dl
and dl, 0x92
mov ebx, r8d
and bl, 0x6d
or bl, dl
xor bl, al
xor bl, 0x92
and bl, al
xor al, r8b
and al, r8b
mov edx, ebx
not dl
mov r8d, eax
not r8b
mov r9d, edx
and r9b, 0xe
and bl, 0xf1
or bl, r9b
or dl, r8b
and r8b, 0xe
and al, 0xf1
or al, r8b
xor al, bl
not dl
or dl, al
mov byte [rsp + 6], dl
mov eax, 0x41718853
jmp 0x180001060
mov eax, dword [rsp + 0x14]
lea edx, [rax*4 - 4]
movzx edx, byte [rcx + rdx]
mov byte [rsp + 5], dl
lea edx, [rax*4 - 3]
movzx edx, byte [rcx + rdx]
mov byte [rsp + 0xd], dl
lea edx, [rax*4 - 2]
movzx edx, byte [rcx + rdx]
mov byte [rsp + 0xe], dl
lea eax, [rax*4 - 1]
movzx eax, byte [rcx + rax]
mov byte [rsp + 0xf], al
mov eax, dword [rsp + 0x14]
mov edx, eax
not edx
and edx, 0xfffffff8
xor eax, 7
or eax, edx
mov edx, eax
not edx
and edx, 0x6b535286
and eax, 0x94acad79
or eax, edx
xor eax, 0x94acad79
mov dword [rsp + 0x20], eax
cmp dword [rsp + 0x20], 0
mov eax, 0x41718853
mov edx, 0x15dba854
cmove eax, edx
movzx edx, byte [rsp + 5]
mov byte [rsp + 6], dl
movzx edx, byte [rsp + 0xd]
mov byte [rsp + 9], dl
movzx edx, byte [rsp + 0xe]
mov byte [rsp + 8], dl
movzx edx, byte [rsp + 0xf]
mov byte [rsp + 7], dl
jmp 0x180001060
cmp eax, 0xc99434f0
jne 0x180001060
add rsp, 0x40
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret