Function at 0x1400aa260
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xd8
mov r15, rdx
mov r12, rcx
mov rax, qword [rsp + 0x148]
mov rdi, qword [rsp + 0x140]
mov rcx, qword [0x14018e218]
xor rcx, rsp
mov qword [rsp + 0xd0], rcx
mov ecx, edi
neg ecx
and ecx, 3
add rdi, rcx
xor edx, edx
sub rax, rcx
cmovb rax, rdx
cmovb rdi, rdx
mov r14, 0xffffffffffffffbe
cmp rax, 0x1300
jb 0x1400aae1e
mov r13d, r8d
mov r14, 0xffffffffffffffd2
cmp r8d, 0xff
ja 0x1400aae1e
mov ebp, r9d
mov eax, r13d
mov qword [rsp + 0x50], rax
lea rsi, [rax + 1]
xor r14d, r14d
mov r8d, 0x1300
mov rcx, rdi
xor edx, edx
call fcn.140124a30
test r13d, r13d
je 0x1400aa35c
mov eax, esi
and eax, 0xfffffffe
xor r14d, r14d
nop dword [rax + rax]
mov ecx, dword [r15 + r14*4]
bsr edx, ecx
xor edx, 0xffffffe0
add edx, 0xbe
cmp ecx, 0xa5
cmovb edx, ecx
inc word [rdi + rdx*4 + 0x1000]
mov ecx, dword [r15 + r14*4 + 4]
bsr edx, ecx
xor edx, 0xffffffe0
add edx, 0xbe
cmp ecx, 0xa5
cmovb edx, ecx
inc word [rdi + rdx*4 + 0x1000]
add r14, 2
cmp rax, r14
jne 0x1400aa310
test sil, 1
je 0x1400aa382
mov eax, dword [r15 + r14*4]
bsr ecx, eax
xor ecx, 0xffffffe0
add ecx, 0xbe
cmp eax, 0xa5
cmovb ecx, eax
inc word [rdi + rcx*4 + 0x1000]
lea r14, [rdi + 8]
movzx eax, word [rdi + 0x12fc]
mov ecx, 0x4bd
nop word cs:[rax + rax]
add ax, word [rdi + rcx*4 + 4]
mov word [rdi + rcx*4 + 4], ax
mov word [rdi + rcx*4 + 6], ax
cmp rcx, 0x3ff
je 0x1400aa3cb
add ax, word [rdi + rcx*4]
mov word [rdi + rcx*4], ax
mov word [rdi + rcx*4 + 2], ax
add rcx, 0xfffffffffffffffe
jmp 0x1400aa3a0
xor eax, eax
nop dword [rax]
mov ecx, dword [r15 + rax*4]
bsr edx, ecx
xor edx, 0xffffffe0
add edx, 0xbe
cmp ecx, 0xa5
cmovb edx, ecx
movzx r8d, word [rdi + rdx*4 + 0x1006]
lea r9d, [r8 + 1]
mov word [rdi + rdx*4 + 0x1006], r9w
mov dword [rdi + r8*8 + 8], ecx
mov byte [rdi + r8*8 + 0xe], al
inc rax
cmp rsi, rax
jne 0x1400aa3d0
mov qword [rsp + 0x48], rsi
mov ebx, 0x4a5
jmp 0x1400aa42c
inc rbx
cmp rbx, 0x4bf
je 0x1400aa44f
movzx r8d, word [rdi + rbx*4 + 2]
movzx eax, word [rdi + rbx*4]
sub r8d, eax
cmp r8d, 2
jl 0x1400aa420
dec r8d
lea rcx, [r14 + rax*8]
xor edx, edx
call fcn.1400ae9b0
jmp 0x1400aa420
movabs r8, 0xffffffff00000000
movsxd rbx, r13d
lea eax, [r13 + 0xff]
mov r11, rbx
shl r11, 0x20
lea rdx, [rdi + rbx*8]
add rdx, 0x14
xor r9d, r9d
nop word cs:[rax + rax]
mov ecx, dword [rdx + r9*8 - 0xc]
dec eax
dec r9
add r11, r8
test ecx, ecx
je 0x1400aa480
test ebp, ebp
mov edx, 0xb
cmovne edx, ebp
mov dword [rsp + 0x2c], edx
mov rbp, qword [rsp + 0x50]
lea rdx, [r9 + rbp]
inc rdx
lea r10, [r9 + rbp]
add r10, 0x100
mov r8, r11
sar r8, 0x1d
add ecx, dword [rdi + r8 + 8]
mov dword [rdi + 0x808], ecx
mov word [rdi + r8 + 0xc], 0x100
lea rcx, [rdi + rbx*8]
mov word [rcx + r9*8 + 0x14], 0x100
mov qword [rsp + 0x38], rdx
cmp edx, 2
mov qword [rsp + 0x58], r13
mov qword [rsp + 0x60], rbx
jge 0x1400aa508
mov dword [rdi], 0x80000000
movsxd rax, r10d
mov byte [rdi + rax*8 + 0xf], 0
mov r10, qword [rsp + 0x48]
jmp 0x1400aa7d7
lea r15d, [r13 - 1]
cmp r10d, 0x102
mov r8d, 0x101
cmovae r8d, r10d
mov r13d, 0x101
lea rcx, [r8 - 0x101]
mov ebx, 0x101
cmp rcx, 7
jb 0x1400aa5c8
cmp r10d, 0x102
cmovae r13d, r10d
and r13d, 0xfffffff8
add r13, 0xffffffffffffff00
xor ebx, ebx
nop word cs:[rax + rax]
mov dword [rdi + rbx*8 + 0x810], 0x40000000
mov dword [rdi + rbx*8 + 0x818], 0x40000000
mov dword [rdi + rbx*8 + 0x820], 0x40000000
mov dword [rdi + rbx*8 + 0x828], 0x40000000
mov dword [rdi + rbx*8 + 0x830], 0x40000000
mov dword [rdi + rbx*8 + 0x838], 0x40000000
mov dword [rdi + rbx*8 + 0x840], 0x40000000
mov dword [rdi + rbx*8 + 0x848], 0x40000000
add rbx, 8
cmp r13, rbx
jne 0x1400aa560
add rbx, 0x101
mov qword [rsp + 0x40], r12
add r15, r9
test r8b, 7
je 0x1400aa60f
lea rcx, [rdi + rbx*8]
add rcx, 8
cmp r10d, 0x102
mov r8d, 0x101
cmovae r8d, r10d
and r8d, 7
xor esi, esi
nop word cs:[rax + rax]
mov dword [rcx + rsi*8], 0x40000000
inc rsi
cmp r8, rsi
jne 0x1400aa600
lea rcx, [r9 + rbp]
add rcx, 0xff
mov qword [rsp + 0x68], rcx
cmp r10d, 0x102
mov r13d, 0x101
mov qword [rsp + 0x30], r10
cmovge r13d, r10d
mov dword [rdi], 0x80000000
add r13, 0xffffffffffffff00
mov ebp, 0x100
xor r8d, r8d
jmp 0x1400aa683
movsxd rcx, ecx
movsxd rdx, ebx
mov r10d, dword [rdi + rdx*8 + 8]
add r10d, dword [rdi + rcx*8 + 8]
mov dword [rdi + r8*8 + 0x810], r10d
lea r10d, [r8 + 0x101]
mov word [rdi + rdx*8 + 0xc], r10w
mov word [rdi + rcx*8 + 0xc], r10w
inc r8
cmp r13, r8
je 0x1400aa6de
movsxd rcx, r15d
mov r12d, dword [rdi + rcx*8 + 8]
movsxd rbx, ebp
mov r10d, dword [rdi + rbx*8 + 8]
cmp r12d, r10d
sbb ebx, 0xffffffff
xor esi, esi
mov ecx, ebp
cmp r12d, r10d
setb bpl
jae 0x1400aa6a9
mov ecx, r15d
mov sil, bpl
mov r12d, r15d
sub r12d, esi
movsxd r10, r12d
mov r10d, dword [rdi + r10*8 + 8]
movsxd rbp, ebx
mov edx, dword [rdi + rbp*8 + 8]
cmp r10d, edx
sbb ebp, 0xffffffff
cmp r10d, edx
sbb r15d, esi
cmp r10d, edx
jae 0x1400aa650
mov ebx, r12d
jmp 0x1400aa650
movsxd rcx, dword [rsp + 0x30]
mov byte [r14 + rcx*8 + 7], 0
cmp dword [rsp + 0x38], 2
mov r12, qword [rsp + 0x40]
mov r10, qword [rsp + 0x48]
mov rbp, qword [rsp + 0x50]
mov rbx, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x58]
jl 0x1400aa7d7
mov rsi, qword [rsp + 0x68]
mov r15d, esi
cmp eax, 0x100
mov r8d, 0x100
cmovge eax, r8d
sub ecx, eax
add ecx, r9d
add ecx, 0x100
mov edx, 0xff
sub edx, eax
mov rax, rbp
add rax, r9
add rax, rdx
test cl, 3
je 0x1400aa779
cmp esi, 0x100
cmovl r8d, esi
mov rcx, qword [rsp + 0x30]
sub cl, r8b
movzx ecx, cl
and ecx, 3
nop dword [rax]
movzx edx, word [rdi + r15*8 + 0xc]
movzx edx, byte [rdi + rdx*8 + 0xf]
inc dl
mov byte [rdi + r15*8 + 0xf], dl
dec r15
dec ecx
jne 0x1400aa760
cmp eax, 3
jb 0x1400aa7d7
nop
movzx eax, word [rdi + r15*8 + 0xc]
movzx eax, byte [rdi + rax*8 + 0xf]
inc al
mov byte [rdi + r15*8 + 0xf], al
movzx eax, word [rdi + r15*8 + 4]
movzx eax, byte [rdi + rax*8 + 0xf]
inc al
mov byte [rdi + r15*8 + 7], al
movzx eax, word [rdi + r15*8 - 4]
movzx eax, byte [rdi + rax*8 + 0xf]
inc al
mov byte [rdi + r15*8 - 1], al
movzx eax, word [rdi + r15*8 - 0xc]
movzx eax, byte [rdi + rax*8 + 0xf]
inc al
mov byte [rdi + r15*8 - 9], al
add r15, 0xfffffffffffffffc
lea eax, [r15 + 1]
cmp eax, 0x100
jg 0x1400aa780
lea rax, [r9 + rbp]
add rax, 2
mov qword [rsp + 0x30], rax
lea rax, [rbx + r9]
inc rax
cmp dword [rsp + 0x38], 0
js 0x1400aa8a8
mov r15, qword [rsp + 0x30]
mov ecx, r15d
lea rdx, [rcx - 1]
cmp rdx, 3
jae 0x1400aa80d
xor r8d, r8d
jmp 0x1400aa871
and r15d, 0xfffffffc
xor r8d, r8d
nop word cs:[rax + rax]
movzx edx, word [rdi + r8*8 + 0xc]
movzx edx, byte [rdi + rdx*8 + 0xf]
inc dl
mov byte [rdi + r8*8 + 0xf], dl
movzx edx, word [rdi + r8*8 + 0x14]
movzx edx, byte [rdi + rdx*8 + 0xf]
inc dl
mov byte [rdi + r8*8 + 0x17], dl
movzx edx, word [rdi + r8*8 + 0x1c]
movzx edx, byte [rdi + rdx*8 + 0xf]
inc dl
mov byte [rdi + r8*8 + 0x1f], dl
movzx edx, word [rdi + r8*8 + 0x24]
movzx edx, byte [rdi + rdx*8 + 0xf]
inc dl
mov byte [rdi + r8*8 + 0x27], dl
add r8, 4
cmp r15, r8
jne 0x1400aa820
test cl, 3
je 0x1400aa8a8
lea rcx, [rdi + r8*8]
add rcx, 0xf
mov r8, qword [rsp + 0x30]
and r8d, 3
xor esi, esi
nop dword [rax]
movzx edx, word [rcx + rsi*8 - 3]
movzx edx, byte [r14 + rdx*8 + 7]
inc dl
mov byte [rcx + rsi*8], dl
inc rsi
cmp r8, rsi
jne 0x1400aa890
mov eax, eax
movzx r13d, byte [r14 + rax*8 + 7]
mov edx, dword [rsp + 0x2c]
cmp edx, r13d
jae 0x1400aa954
movabs rax, 0x100000000
add r11, rax
mov ecx, r13d
sub ecx, edx
mov r8d, 1
shl r8d, cl
mov rax, r11
sar rax, 0x1d
movzx r15d, byte [r14 + rax + 7]
cmp edx, r15d
jae 0x1400aa95c
mov dword [rsp + 0x40], ecx
mov rax, qword [rsp + 0x58]
lea ebp, [rax + r9]
inc ebp
movsxd rax, ebp
lea rax, [rdi + rax*8]
add rax, 0xf
mov r11, rbp
shl r11, 0x20
xor ebx, ebx
mov r10d, dword [rsp + 0x2c]
movabs rsi, 0xffffffff00000000
nop dword [rax]
mov edx, ebx
mov ecx, r13d
sub ecx, r15d
mov ebx, 0xffffffff
shl ebx, cl
add edx, r8d
add ebx, edx
mov byte [rax], r10b
movzx r15d, byte [rax - 8]
add rax, 0xfffffffffffffff8
add r11, rsi
dec ebp
cmp r10d, r15d
jb 0x1400aa920
sar r11, 0x20
mov ecx, dword [rsp + 0x40]
jmp 0x1400aa967
mov r15d, r13d
jmp 0x1400aab23
sar r11, 0x20
xor ebx, ebx
mov rbp, qword [rsp + 0x38]
inc ebp
inc r11
mov r15d, dword [rsp + 0x2c]
nop word cs:[rax + rax]
movzx eax, byte [rdi + r11*8 + 7]
dec ebp
dec r11
cmp r15d, eax
je 0x1400aa980
sar ebx, cl
movabs rax, 0xf0f0f0f0f0f0f0f0
mov qword [rsp + 0xa0], rax
movaps xmm0, xmmword [0x140163c40]
movaps xmmword [rsp + 0x90], xmm0
movaps xmmword [rsp + 0x80], xmm0
movaps xmmword [rsp + 0x70], xmm0
test r11d, r11d
js 0x1400aaa08
mov eax, ebp
lea rcx, [rdi + rax*8]
add rcx, 0xf
mov r8d, r15d
jmp 0x1400aa9fb
mov edx, r15d
sub edx, esi
mov dword [rsp + rdx*4 + 0x70], eax
mov r10d, eax
mov r8d, esi
dec rax
add rcx, 0xfffffffffffffff8
test r10d, r10d
jle 0x1400aaa08
movzx esi, byte [rcx]
cmp r8d, esi
ja 0x1400aa9e0
mov r10d, eax
jmp 0x1400aa9ef
test ebx, ebx
jle 0x1400aab0e
mov eax, 0xf0f0f0f0
mov r10d, 0xf0f0f0f0
jmp 0x1400aaa43
lea ecx, [rsi - 1]
movzx edx, byte [r14 + rcx*8 + 7]
mov esi, r15d
sub esi, r8d
cmp esi, edx
cmovne ecx, eax
mov dword [rsp + r8*4 + 0x70], ecx
mov ebx, ebp
test ebp, ebp
jle 0x1400aab10
bsr ecx, ebx
xor ecx, 0x1f
cmp ecx, 0x1f
jne 0x1400aaa80
mov r13d, 1
mov r13d, r13d
nop word [rax + rax]
cmp dword [rsp + r13*4 + 0x70], 0xf0f0f0f0
jne 0x1400aaad0
inc r13
cmp r13, 0xd
jne 0x1400aaa60
mov r13d, 0xd
jmp 0x1400aaad0
mov r13d, 0x20
sub r13d, ecx
jmp 0x1400aaa9b
mov r13, rcx
test ecx, 0xfffffffe
je 0x1400aaa4e
mov r8d, dword [rsp + r13*4 + 0x70]
lea rcx, [r13 - 1]
cmp r8, r10
je 0x1400aaa90
mov edx, ecx
mov esi, dword [rsp + rdx*4 + 0x70]
cmp esi, 0xf0f0f0f0
je 0x1400aaac3
mov edx, dword [r14 + rsi*8]
add edx, edx
cmp dword [r14 + r8*8], edx
ja 0x1400aaa90
cmp r13d, 0xc
jbe 0x1400aaa54
nop dword [rax]
lea ecx, [r13 - 1]
mov ebp, 0xffffffff
shl ebp, cl
mov r8d, r13d
mov esi, dword [rsp + r8*4 + 0x70]
inc byte [r14 + rsi*8 + 7]
add ebp, ebx
mov edx, dword [rsp + rcx*4 + 0x70]
cmp edx, 0xf0f0f0f0
cmove edx, esi
mov dword [rsp + rcx*4 + 0x70], edx
test rsi, rsi
jne 0x1400aaa20
mov ecx, 0xf0f0f0f0
jmp 0x1400aaa34
mov ebp, ebx
test ebp, ebp
mov r10, qword [rsp + 0x48]
mov rbx, qword [rsp + 0x60]
js 0x1400aab7f
mov rbp, qword [rsp + 0x50]
mov r14, 0xffffffffffffffff
cmp r15d, 0xc
ja 0x1400aae1e
xorps xmm0, xmm0
movups xmmword [rsp + 0x7a], xmm0
movaps xmmword [rsp + 0x70], xmm0
movups xmmword [rsp + 0xba], xmm0
movaps xmmword [rsp + 0xb0], xmm0
cmp dword [rsp + 0x38], 0
mov r11, qword [rsp + 0x30]
js 0x1400aac81
lea rax, [rbx + r9]
add rax, 2
mov ecx, eax
dec rcx
cmp rcx, 3
jae 0x1400aac0b
xor ecx, ecx
jmp 0x1400aac51
mov eax, dword [rsp + 0x74]
test ebp, ebp
mov r8d, 0xffffffff
cmovns r8d, ebp
not r8d
add r8d, ebp
xor ecx, ecx
nop word [rax + rax]
lea edx, [rax + rcx]
cmp edx, 0xf0f0f0f0
je 0x1400aabc3
lea edx, [rcx + rax]
inc edx
dec byte [r14 + rdx*8 + 7]
inc ecx
mov edx, r8d
add edx, ecx
jne 0x1400aaba0
jmp 0x1400aab1e
movsxd rax, r11d
lea r8d, [rcx + rbp]
lea r11, [rax + 1]
add eax, 2
nop word cs:[rax + rax]
movzx edx, byte [rdi + r11*8 + 7]
dec r11
dec eax
cmp r15d, edx
je 0x1400aabe0
movsxd rdx, eax
dec byte [r14 + rdx*8 + 7]
add ebp, ecx
inc ebp
cmp r8d, 0xfffffffe
jle 0x1400aab83
jmp 0x1400aab1e
mov r8d, r11d
mov ecx, r11d
and ecx, 3
sub r8, rcx
xor ecx, ecx
nop dword [rax]
movzx edx, byte [rdi + rcx*8 + 0xf]
inc word [rsp + rdx*2 + 0x70]
movzx edx, byte [rdi + rcx*8 + 0x17]
inc word [rsp + rdx*2 + 0x70]
movzx edx, byte [rdi + rcx*8 + 0x1f]
inc word [rsp + rdx*2 + 0x70]
movzx edx, byte [rdi + rcx*8 + 0x27]
inc word [rsp + rdx*2 + 0x70]
add rcx, 4
cmp r8, rcx
jne 0x1400aac20
test al, 3
je 0x1400aac81
lea rax, [rdi + rcx*8]
add rax, 0xf
and r11d, 3
xor ecx, ecx
nop word cs:[rax + rax]
movzx edx, byte [rax + rcx*8]
inc word [rsp + rdx*2 + 0x70]
inc rcx
cmp r11, rcx
jne 0x1400aac70
mov r14d, r15d
test r15d, r15d
jle 0x1400aad37
mov eax, r14d
and eax, 3
cmp r15d, 4
jae 0x1400aaca0
xor ecx, ecx
mov rdx, r14
jmp 0x1400aad02
mov r8d, r14d
and r8d, 0xfffffffc
xor ecx, ecx
mov rdx, r14
nop dword [rax]
mov word [rsp + rdx*2 + 0xb0], cx
add cx, word [rsp + rdx*2 + 0x70]
movzx ecx, cx
shr ecx, 1
mov word [rsp + rdx*2 + 0xae], cx
add cx, word [rsp + rdx*2 + 0x6e]
movzx ecx, cx
shr ecx, 1
mov word [rsp + rdx*2 + 0xac], cx
add cx, word [rsp + rdx*2 + 0x6c]
movzx ecx, cx
shr ecx, 1
mov word [rsp + rdx*2 + 0xaa], cx
add cx, word [rsp + rdx*2 + 0x6a]
movzx ecx, cx
shr ecx, 1
add rdx, 0xfffffffffffffffc
add r8, 0xfffffffffffffffc
jne 0x1400aacb0
test rax, rax
je 0x1400aad37
lea r8, [rsp + rdx*2]
add r8, 0x70
lea rdx, [rsp + rdx*2]
add rdx, 0xb0
neg rax
xor r9d, r9d
mov word [rdx + r9*2], cx
add cx, word [r8 + r9*2]
movzx ecx, cx
shr ecx, 1
dec r9
cmp rax, r9
jne 0x1400aad20
cmp ebp, 0x7ffffffe
ja 0x1400aae1a
mov eax, r10d
and eax, 3
cmp ebp, 3
jae 0x1400aad52
xor ecx, ecx
jmp 0x1400aadad
mov edx, r10d
and edx, 0xfffffffc
xor ecx, ecx
nop word [rax + rax]
movzx r8d, byte [rdi + rcx*8 + 0xf]
movzx r9d, byte [rdi + rcx*8 + 0xe]
mov qword [r12 + r9*8 + 8], r8
movzx r8d, byte [rdi + rcx*8 + 0x17]
movzx r9d, byte [rdi + rcx*8 + 0x16]
mov qword [r12 + r9*8 + 8], r8
movzx r8d, byte [rdi + rcx*8 + 0x1f]
movzx r9d, byte [rdi + rcx*8 + 0x1e]
mov qword [r12 + r9*8 + 8], r8
movzx r8d, byte [rdi + rcx*8 + 0x27]
movzx r9d, byte [rdi + rcx*8 + 0x26]
mov qword [r12 + r9*8 + 8], r8
add rcx, 4
cmp rdx, rcx
jne 0x1400aad60
test rax, rax
je 0x1400aadd8
lea rcx, [rdi + rcx*8]
add rcx, 0xf
xor edx, edx
nop dword [rax]
movzx r8d, byte [rcx + rdx*8]
movzx r9d, byte [rcx + rdx*8 - 1]
mov qword [r12 + r9*8 + 8], r8
inc rdx
cmp rax, rdx
jne 0x1400aadc0
xor eax, eax
jmp 0x1400aade8
inc rax
cmp r10, rax
je 0x1400aae1a
mov rdx, qword [r12 + rax*8 + 8]
movzx ecx, dl
movzx r8d, word [rsp + rcx*2 + 0xb0]
lea r9d, [r8 + 1]
mov word [rsp + rcx*2 + 0xb0], r9w
test rcx, rcx
je 0x1400aade0
neg cl
shl r8, cl
or r8, rdx
mov qword [r12 + rax*8 + 8], r8
jmp 0x1400aade0
mov qword [r12], r14
mov rcx, qword [rsp + 0xd0]
xor rcx, rsp
call fcn.14011fde0
mov rax, r14
add rsp, 0xd8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret