Function at 0x140001200
Capabilities:
Encode data using xor
Encrypt data using aes
Reference aes constants

Disassembly:
push rbp
lea rax, [rdx + r8]
mov rbp, rsp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
and rsp, 0xfffffffffffffff0
sub rsp, 0x40
mov qword [rbp + 0x10], rcx
mov qword [rsp + 8], rax
test r8, r8
je 0x14000125e
mov r14, rdx
lea r15, str.cw
mov edx, 0x10
nop dword [rax + rax]
cmp edx, 0x10
je 0x14000126f
movsxd rax, edx
add edx, 1
movzx eax, byte [rsp + rax + 0x30]
xor byte [r14], al
add r14, 1
cmp qword [rsp + 8], r14
jne 0x140001240
lea rsp, [rbp - 0x38]
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov rax, qword [rbp + 0x10]
lea r13, [rsp + 0x30]
xor r9d, r9d
mov rdx, r13
movdqu xmm0, xmmword [rax + 0xf0]
mov r8, rax
movaps xmmword [rsp + 0x20], xmm0
movaps xmmword [rsp + 0x30], xmm0
xor eax, eax
movzx ecx, byte [r8 + rax]
xor byte [rdx + rax], cl
add rax, 1
cmp rax, 4
jne 0x140001295
add r9d, 4
add rdx, 4
add r8, 4
cmp r9d, 0x10
jne 0x140001293
mov rax, qword [rbp + 0x10]
mov edi, 0xe0
mov qword [rsp], r14
lea r12, [r13 + 0x10]
sub edi, r13d
mov qword [rsp + 0x20], r13
add rax, 0x10
mov dword [rsp + 0x14], edi
lea rdi, [r13 + 0x14]
mov qword [rsp + 0x18], rax
mov eax, r9d
sub eax, r13d
mov r13, rdi
mov r14d, eax
nop
mov rdx, r12
lea rax, [rdx - 0x10]
movzx ecx, byte [rax]
add rax, 4
movzx ecx, byte [r15 + rcx]
mov byte [rax - 4], cl
cmp rdx, rax
jne 0x1400012f7
add rdx, 1
cmp r13, rdx
jne 0x1400012f3
movzx ecx, byte [rsp + 0x39]
movzx eax, byte [rsp + 0x35]
movzx edx, byte [rsp + 0x31]
movzx r8d, byte [rsp + 0x3e]
mov byte [rsp + 0x35], cl
movzx ecx, byte [rsp + 0x3d]
movzx r9d, byte [rsp + 0x3b]
mov byte [rsp + 0x3d], dl
mov byte [rsp + 0x39], cl
movzx ecx, byte [rsp + 0x32]
movzx edx, byte [rsp + 0x3a]
mov byte [rsp + 0x31], al
mov byte [rsp + 0x3a], cl
movzx ecx, byte [rsp + 0x36]
mov byte [rsp + 0x36], r8b
movzx r8d, byte [rsp + 0x3f]
mov byte [rsp + 0x3e], cl
movzx ecx, byte [rsp + 0x33]
mov byte [rsp + 0x3f], r9b
movzx r9d, byte [rsp + 0x37]
mov byte [rsp + 0x32], dl
mov byte [rsp + 0x33], r8b
mov byte [rsp + 0x3b], r9b
mov byte [rsp + 0x37], cl
cmp dword [rsp + 0x14], r14d
je 0x140001470
mov r10, qword [rsp + 0x20]
movzx ecx, byte [r10]
mov r9d, edx
add r10, 4
xor r9d, r8d
mov esi, ecx
mov edi, ecx
xor ecx, r8d
xor esi, eax
mov ebx, esi
mov r11d, esi
add esi, esi
shr bl, 7
xor r11d, r9d
lea ebx, [rbx + rbx*2]
xor edi, r11d
lea ebx, [rbx + rbx*8]
xor ebx, edi
xor esi, ebx
mov byte [r10 - 4], sil
mov esi, eax
xor esi, edx
mov ebx, esi
add esi, esi
shr bl, 7
lea ebx, [rbx + rbx*2]
lea ebx, [rbx + rbx*8]
xor ebx, eax
mov eax, r9d
add r9d, r9d
shr al, 7
xor ebx, r11d
lea eax, [rax + rax*2]
xor esi, ebx
lea eax, [rax + rax*8]
mov byte [r10 - 3], sil
xor eax, edx
xor eax, r11d
xor r11d, r8d
xor r9d, eax
mov eax, ecx
add ecx, ecx
shr al, 7
mov byte [r10 - 2], r9b
lea eax, [rax + rax*2]
lea eax, [rax + rax*8]
xor eax, r11d
xor ecx, eax
mov byte [r10 - 1], cl
cmp r12, r10
je 0x140001436
movzx eax, byte [r10 + 1]
movzx edx, byte [r10 + 2]
movzx r8d, byte [r10 + 3]
jmp 0x140001398
mov r8, qword [rsp + 0x18]
mov rdx, qword [rsp + 0x20]
xor eax, eax
movzx ecx, byte [r8 + rax]
xor byte [rdx + rax], cl
add rax, 1
cmp rax, 4
jne 0x140001442
add rdx, 4
add r8, 4
cmp r12, rdx
jne 0x140001440
add qword [rsp + 0x18], 0x10
add r14d, 0x10
jmp 0x1400012f0
mov rax, qword [rbp + 0x10]
mov r14, qword [rsp]
mov r13, qword [rsp + 0x20]
lea rcx, [rax + 0xe0]
xor eax, eax
movzx edx, byte [rcx + rax]
xor byte [r13 + rax], dl
add rax, 1
cmp rax, 4
jne 0x140001486
add r13, 4
add rcx, 4
cmp r12, r13
jne 0x140001484
mov edx, 0xf
mov rax, qword [rbp + 0x10]
movsxd rcx, edx
movzx eax, byte [rax + rdx + 0xf0]
cmp al, 0xff
je 0x1400014d8
mov rdi, qword [rbp + 0x10]
add eax, 1
mov byte [rdi + rcx + 0xf0], al
mov edx, 1
xor eax, eax
jmp 0x14000124b
mov rax, qword [rbp + 0x10]
mov byte [rax + rdx + 0xf0], 0
sub rdx, 1
jae 0x1400014ab
jmp 0x1400014cc