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, 0x28
mov qword [rsp + 0x20], rdx
mov esi, 0x4b1208da
xor r9d, r9d
lea r15, str.cw
jmp 0x180001060
movzx eax, byte [rsp + 0xc]
movzx r12d, byte [rax + r15]
movzx eax, byte [rsp + 0xd]
movzx r13d, byte [rax + r15]
movzx eax, byte [rsp + 0xe]
movzx eax, byte [rax + r15]
mov byte [rsp + 8], al
movzx eax, byte [rsp + 0xf]
movzx eax, byte [rax + r15]
mov byte [rsp + 7], al
mov esi, 0x6a37a25d
nop dword [rax + rax]
cmp esi, 0x4f108c10
jg 0x1800010b0
cmp esi, 0xebb0b731
jle 0x180001460
cmp esi, 0xebb0b732
je 0x18000150f
cmp esi, 0xe01b6a4
je 0x1800015cf
cmp esi, 0x4b1208da
jne 0x180001060
mov dword [rsp + 0x18], r9d
mov eax, dword [rsp + 0x18]
cmp eax, 8
mov esi, 0x4f108c11
mov eax, 0xe01b6a4
cmovb esi, eax
jmp 0x180001060
cmp esi, 0x63ff1f4a
jle 0x1800014a0
cmp esi, 0x6473316a
je 0x180001026
cmp esi, 0x6a37a25d
jne 0x180001812
mov r14d, dword [rsp + 0x10]
shl r14d, 2
mov r10d, dword [rsp + 0x10]
lea eax, [r10*4 - 0x20]
movzx r11d, byte [rcx + rax]
mov edx, r11d
not dl
and dl, 0x29
mov eax, r11d
and al, 0xd6
or al, dl
mov edx, r12d
not dl
xor al, 0x29
or al, dl
mov esi, eax
not sil
xor dl, r11b
not dl
and dl, r11b
mov ebx, edx
not bl
mov r11d, eax
and r11b, 0x98
and sil, 0x67
or sil, r11b
or al, bl
and bl, 0x98
and dl, 0x67
or dl, bl
xor dl, sil
not al
or al, dl
mov byte [rcx + r14], al
lea eax, [r10*4 - 0x1f]
movzx ebx, byte [rcx + rax]
mov eax, ebx
not al
and al, 0x30
mov edx, ebx
and dl, 0xc0
or dl, al
xor dl, 0xc0
and bl, 0xf
or bl, dl
mov eax, r13d
not al
and al, 0x80
mov edx, r13d
and dl, 0x70
or dl, al
xor dl, 0x70
mov eax, r13d
xor al, 0xf0
and al, r13b
mov r11d, edx
and r11b, al
xor al, dl
or al, r11b
mov edx, ebx
not dl
and dl, al
not al
and al, bl
or al, dl
mov r11d, r14d
not r11d
mov edx, r14d
xor edx, 0x71d32876
and edx, r11d
mov edi, r14d
xor edi, 0x71d32874
and edi, r14d
mov ebx, edx
not ebx
mov esi, edi
not esi
mov ebp, ebx
and ebp, 0x7dfc7f4c
and edx, 0x820380b2
or edx, ebp
or ebx, esi
and esi, 0x7dfc7f4c
and edi, 0x820380b0
or edi, esi
xor edi, edx
not ebx
or ebx, edi
mov edx, ebx
not edx
and edx, 0x1ff62533
and ebx, 0xe009dacc
or ebx, edx
xor ebx, 0x6e250d44
mov edx, r14d
and edx, 0x9b93dafc
mov esi, r11d
and esi, 0x646c2500
or esi, edx
xor esi, 0x646c2501
mov edx, r11d
and edx, 0xfffffffe
or edx, esi
mov esi, edx
not esi
and esi, 0x3e002e14
and edx, 0xc1ffd1e8
or edx, esi
xor edx, 0xc1ffd1e8
mov esi, ebx
and esi, edx
xor edx, ebx
or edx, esi
mov byte [rcx + rdx], al
lea eax, [r10*4 - 0x1e]
movzx esi, byte [rcx + rax]
mov edi, esi
not dil
mov edx, edi
and dl, 0xe5
and sil, 0x1a
or sil, dl
movzx eax, byte [rsp + 8]
mov edx, eax
not dl
xor sil, 0xe5
or sil, dl
mov ebx, esi
not bl
and dl, 0x52
and al, 0xad
or al, dl
xor al, 0x52
or al, dil
mov edx, eax
not dl
mov edi, esi
and dil, 0xd1
and bl, 0x2e
or bl, dil
or sil, al
and al, 0xd1
and dl, 0x2e
or dl, al
xor dl, bl
not sil
or sil, dl
mov edx, r14d
xor edx, 0x71cd5a1a
and edx, r11d
mov edi, r11d
or edi, 0x71cd5a1a
mov eax, edx
not eax
mov ebx, eax
and ebx, 0x507f1944
and edx, 0xaf80e6ba
or edx, ebx
or eax, edi
and edi, 0x507f1944
mov ebx, r14d
and ebx, 0x8e00a4a0
or ebx, edi
xor ebx, edx
not eax
or eax, ebx
mov edx, eax
not edx
and edx, 0x675871ef
and eax, 0x98a78e10
or eax, edx
mov edi, eax
xor edi, 0x2110974
mov edx, r14d
and edx, 0x87f6e584
mov ebx, r11d
and ebx, 0x78091a78
or ebx, edx
xor ebx, 0x78091a7a
mov edx, r11d
and edx, 0xfffffffd
or edx, ebx
mov ebx, edx
not ebx
xor eax, 0xe96ad408
mov ebp, eax
and ebp, 0x1daef28b
and edi, 0xe2510d74
or edi, ebp
or eax, edx
and edx, 0x1daef28b
and ebx, 0xe2510d74
or ebx, edx
xor ebx, edi
not eax
or eax, ebx
mov byte [rcx + rax], sil
lea eax, [r10*4 - 0x1d]
movzx r10d, byte [rcx + rax]
mov eax, r10d
movzx esi, byte [rsp + 7]
mov ebx, esi
not bl
and bl, 0xca
mov edx, esi
and dl, 0x35
or dl, bl
xor dl, r10b
xor dl, 0xca
and dl, r10b
not r10b
and r10b, 0x22
and al, 0xdd
or al, r10b
xor al, sil
xor al, 0x22
and al, sil
mov r10d, eax
not r10b
mov ebx, edx
not bl
mov esi, r10d
and sil, 0x45
and al, 0xba
or al, sil
or r10b, bl
and bl, 0x45
and dl, 0xba
or dl, bl
xor dl, al
not r10b
or r10b, dl
mov eax, r14d
or eax, 0x21084110
mov edx, r11d
or edx, 0x88742a2a
and eax, 0xa97c6b38
mov esi, r11d
and esi, 0x128294c0
or esi, eax
and edx, 0xa97c6b3a
mov eax, r14d
and eax, 0x44010004
or eax, edx
xor eax, esi
mov edx, eax
not edx
and edx, 0x6aecb1f8
and eax, 0x95134e06
or eax, edx
xor eax, 0xf01a0f11
mov edx, r14d
and edx, 0xda00500
and r11d, 0xf25ffaff
or r11d, edx
xor r11d, 0xf25ffafc
xor r14d, 0xfffffffc
or r14d, r11d
mov edx, r14d
not edx
and edx, 0x1fc56d29
and r14d, 0xe03a92d6
or r14d, edx
xor r14d, 0xe03a92d6
mov edx, eax
and edx, r14d
xor r14d, eax
or r14d, edx
mov byte [rcx + r14], r10b
mov r10d, dword [rsp + 0x10]
add r10d, 1
mov esi, 0xa66542da
jmp 0x180001060
cmp esi, 0x8231db23
je 0x180001733
cmp esi, 0xa66542da
jne 0x180001060
mov dword [rsp + 0x10], r10d
mov eax, dword [rsp + 0x10]
cmp eax, 0x3c
mov esi, 0x63ff1f4b
mov eax, 0x8231db23
cmovb esi, eax
jmp 0x180001060
cmp esi, 0x4f108c11
je 0x180001802
cmp esi, 0x5105915c
jne 0x180001060
mov byte [rsp + 0xc], r8b
movzx eax, byte [rsp + 6]
mov byte [rsp + 0xd], al
movzx eax, byte [rsp + 5]
mov byte [rsp + 0xe], al
movzx eax, byte [rsp + 4]
mov byte [rsp + 0xf], al
mov eax, dword [rsp + 0x1c]
cmp eax, 4
mov esi, 0x6a37a25d
mov eax, 0x6473316a
cmove esi, eax
movzx eax, byte [rsp + 0xf]
mov byte [rsp + 7], al
movzx eax, byte [rsp + 0xe]
mov byte [rsp + 8], al
movzx r13d, byte [rsp + 0xd]
movzx r12d, byte [rsp + 0xc]
jmp 0x180001060
movzx eax, byte [rsp + 3]
movzx eax, byte [rsp + 9]
movzx r11d, byte [rax + r15]
movzx eax, byte [rsp + 0xa]
movzx eax, byte [rax + r15]
mov byte [rsp + 6], al
movzx eax, byte [rsp + 0xb]
movzx eax, byte [rax + r15]
mov byte [rsp + 5], al
movzx eax, byte [rsp + 3]
movzx eax, byte [rax + r15]
mov byte [rsp + 4], al
mov eax, dword [rsp + 0x10]
shr rax, 3
lea rdx, [0x180035460]
movzx eax, byte [rax + rdx]
mov esi, eax
mov edx, eax
xor dl, 0xa2
and dl, al
or al, 0x5d
not sil
mov r8d, r11d
xor r8b, 0xa2
and r8b, r11b
not r11b
and r11b, 0xa2
mov ebx, edx
not bl
mov edi, eax
and dil, 0x6f
and sil, 0x80
or sil, dil
or al, bl
and bl, 0x6f
and dl, 0x90
or dl, bl
xor dl, sil
not al
or al, dl
mov edx, r11d
and dl, r8b
xor r8b, r11b
or r8b, dl
mov edx, eax
not dl
and dl, 0xb6
and al, 0x49
or al, dl
mov edx, r8d
not dl
and dl, 0xb6
and r8b, 0x49
or r8b, dl
xor r8b, al
mov esi, 0x5105915c
jmp 0x180001060
mov eax, dword [rsp + 0x18]
shl eax, 2
mov byte [rsp + 0x17], r12b
mov r15, qword [rsp + 0x20]
movzx ebx, byte [r15 + rax]
mov byte [rcx + rax], bl
mov esi, eax
not esi
mov ebp, esi
and ebp, 0xd99644dc
mov ebx, eax
and ebx, 0x2669bb20
or ebx, ebp
mov r9d, esi
and r9d, eax
mov r12d, r10d
mov r10d, r13d
mov r13d, r9d
mov r11d, esi
mov ebp, eax
mov edi, esi
and esi, 0x1869d3ce
and eax, 0xe7962c30
or eax, esi
xor eax, 0x1869d3cd
mov esi, r9d
and esi, eax
xor eax, r9d
not r9d
mov r14d, r9d
and r14d, 0x12d15b1b
and r13d, 0xed2ea4e4
or r13d, r14d
mov edx, ebx
xor edx, 0xc90604c4
xor ebx, 0x2669bb22
or r9d, ebx
and ebx, 0x12d15b1a
and edx, 0xed2ea4e4
or edx, ebx
xor edx, r13d
mov r13d, r10d
mov r10d, r12d
not r9d
or r9d, edx
movzx edx, byte [r15 + r9]
mov byte [rcx + r9], dl
and r11d, 0x41796771
and ebp, 0xbe86988c
or ebp, r11d
mov edx, ebp
xor edx, 0xba02088c
mov r11d, ebp
xor r11d, 0x41796771
mov r9d, r11d
or r9d, 0xc3ab85ba
or edi, 0x3c547a45
xor edi, r9d
mov ebx, edi
not ebx
and ebx, 0x3c547a47
and edi, 0xc3ab85b8
or edi, ebx
and r11d, 0x44d5d760
and edx, 0xbb2a289c
or edx, r11d
xor edx, 0xbb2a289e
xor ebp, 0xbe86988c
or ebp, edx
mov edx, ebp
not edx
and edx, 0x6619c339
and ebp, 0x99e63cc6
or ebp, edx
xor ebp, 0x99e63cc6
mov edx, edi
and edx, ebp
xor ebp, edi
or ebp, edx
movzx edx, byte [r15 + rbp]
mov byte [rcx + rbp], dl
or eax, esi
movzx edx, byte [r15 + rax]
lea r15, str.cw
movzx r12d, byte [rsp + 0x17]
mov byte [rcx + rax], dl
mov r9d, dword [rsp + 0x18]
add r9d, 1
mov esi, 0x4b1208da
jmp 0x180001060
mov eax, dword [rsp + 0x10]
lea edx, [rax*4 - 4]
movzx edx, byte [rcx + rdx]
mov byte [rsp + 3], dl
lea edx, [rax*4 - 3]
movzx edx, byte [rcx + rdx]
mov byte [rsp + 9], dl
lea edx, [rax*4 - 2]
movzx edx, byte [rcx + rdx]
mov byte [rsp + 0xa], dl
lea eax, [rax*4 - 1]
movzx eax, byte [rcx + rax]
mov byte [rsp + 0xb], al
mov eax, dword [rsp + 0x10]
mov edx, eax
not edx
and edx, 0x8f55fbdb
and eax, 0x70aa0424
or eax, edx
mov edx, eax
xor edx, 0x70aa0424
xor eax, 0x4540a1a
and eax, 0x34760a3e
mov ebp, edx
and ebp, 0xcb89f5c1
or ebp, eax
xor ebp, 0xcb89f5c6
and edx, 0xfffffff8
or edx, ebp
mov eax, edx
not eax
and eax, 0x33f51887
and edx, 0xcc0ae778
or edx, eax
xor edx, 0xcc0ae778
mov dword [rsp + 0x1c], edx
cmp dword [rsp + 0x1c], 0
mov esi, 0x5105915c
mov eax, 0xebb0b732
cmove esi, eax
movzx r8d, byte [rsp + 3]
movzx eax, byte [rsp + 9]
mov byte [rsp + 6], al
movzx eax, byte [rsp + 0xa]
mov byte [rsp + 5], al
movzx eax, byte [rsp + 0xb]
mov byte [rsp + 4], al
jmp 0x180001060
mov esi, 0xa66542da
mov r10d, 8
jmp 0x180001060
cmp esi, 0x63ff1f4b
jne 0x180001060
add rsp, 0x28
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret