Function at 0x1401a9db0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x118
mov r12, rdx
mov rsi, rcx
mov rbx, qword [rdx]
nop dword [rax]
mov eax, dword [0x1415a3dd8]
and eax, dword [0x1415a3ddc]
xor eax, 0xa3502a60
add eax, 0x73d2e09d
mov ecx, eax
xor ecx, 0x1324ab5f
or eax, 0xecdb54a0
and eax, ecx
cmp eax, 0xb9b28e20
ja 0x1401a9dd0
movzx r14d, word [rbx + 0x3d2]
mov eax, dword [0x1415a3de0]
mov ecx, dword [0x1415a3de4]
mov edx, eax
and edx, ecx
or eax, ecx
not edx
and edx, eax
mov eax, edx
xor eax, 0x2040a050
and eax, edx
and eax, 0x20c0a050
cmp eax, 0xed73c51f
jbe 0x1401a9e50
movzx eax, byte [0x1415acbd0]
mov edx, 0x438
xor ecx, ecx
call fcn.1401ac910
nop word cs:[rax + rax]
mov eax, dword [0x1415a3de8]
xor edx, edx
div dword [0x1415a3dec]
mov ecx, eax
and ecx, 0x6f91e8d5
add ecx, ecx
neg ecx
add eax, ecx
add eax, 0x6f91e8d5
mov ecx, eax
xor ecx, 0xea5147d0
and eax, 0x15aeb82f
add eax, eax
sub eax, ecx
mov ebp, eax
xor ebp, 0x94615cd7
and ebp, eax
movzx eax, byte [0x1415acbd0]
mov edx, 0x438
xor ecx, ecx
call fcn.14020ae90
cmp ebp, 0xaacdf6c
ja 0x1401a9e50
mov rdi, rax
mov qword [rsp + 0x110], r14
test rax, rax
je 0x1401a9f3f
mov qword [rdi + 0x160], 0
mov r10, qword [r12 + 0x10]
movzx eax, word [rbx + 0x3d2]
mov r13, r10
not r13
add r13, rax
mov word [rdi + 0x3d2], r13w
lea r15, [rbx + 0x168]
mov ecx, dword [0x1415a3e08]
and ecx, dword [0x1415a3e0c]
add ecx, 0x30b9e40d
mov edx, ecx
not edx
and edx, 0xcddf4c94
mov r8d, ecx
and r8d, 0x3220b36b
imul r8d, edx
mov edx, ecx
and edx, 0xcddf4c94
or ecx, 0xcddf4c94
imul ecx, edx
add ecx, r8d
add ecx, 0x8625ad93
cmp ecx, 0x4d7042b7
jae 0x1401a9fef
jmp 0x1401aa066
mov eax, dword [0x1415a3df4]
add eax, dword [0x1415a3df0]
mov ecx, eax
xor ecx, 0xc900a870
add ecx, eax
and eax, 0x36ff578f
sub ecx, eax
mov eax, ecx
or eax, 0x4a044411
not ecx
and ecx, 0x30510268
and eax, 0xce2e5493
sub eax, ecx
cmp eax, 0x7ebf6693
jae 0x1401a9f80
ud2
mov eax, dword [0x1415a3df8]
or eax, dword [0x1415a3dfc]
mov ecx, eax
and ecx, 0x25078056
add ecx, ecx
sub eax, ecx
imul eax, eax, 0xa24b6a76
add eax, 0x31cac3a4
xor eax, 0xea88b022
ud2
ud2
mov ecx, dword [0x1415a3e10]
mov edx, dword [0x1415a3e14]
add ecx, edx
add ecx, 0xec57d9e6
imul rcx, rcx, 0x3cfa8eb3
shr rcx, 0x3d
imul rdx, r10, 0x38
mov r8, r10
shl r8, 5
movups xmm0, xmmword [r15 + rdx]
movups xmm1, xmmword [r15 + rdx + 0x10]
movups xmm2, xmmword [r15 + rdx + 0x20]
movaps xmmword [rsp + 0x30], xmm0
movaps xmmword [rsp + 0x40], xmm1
movaps xmmword [rsp + 0x50], xmm2
mov rdx, qword [r15 + rdx + 0x30]
mov qword [rsp + 0x60], rdx
movups xmm0, xmmword [rbx + r8]
movups xmm1, xmmword [rbx + r8 + 0x10]
movaps xmmword [rsp + 0xd0], xmm0
movaps xmmword [rsp + 0xe0], xmm1
cmp ecx, 0x39208c92
jne 0x1401aa0b9
imul rcx, r10, 0x38
mov rdx, qword [r15 + rcx + 0x30]
mov qword [rsp + 0x60], rdx
movups xmm0, xmmword [r15 + rcx]
movups xmm1, xmmword [r15 + rcx + 0x10]
movups xmm2, xmmword [r15 + rcx + 0x20]
movaps xmmword [rsp + 0x50], xmm2
movaps xmmword [rsp + 0x40], xmm1
movaps xmmword [rsp + 0x30], xmm0
mov rcx, r10
shl rcx, 5
movups xmm0, xmmword [rbx + rcx]
movups xmm1, xmmword [rbx + rcx + 0x10]
movaps xmmword [rsp + 0xd0], xmm0
movaps xmmword [rsp + 0xe0], xmm1
jmp 0x1401a9fef
cmp r13, 0xb
ja 0x1401aa537
mov rcx, r10
or rcx, 1
nop word [rax + rax]
mov edx, dword [0x1415a3e18]
imul edx, dword [0x1415a3e1c]
imul edx, edx, 0x5a7054cb
add edx, 0x71fe80cd
mov r8d, edx
not r8d
and r8d, 0x6ad5add0
mov r9d, edx
and r9d, 0x952a522f
imul r9d, r8d
mov r8d, edx
and r8d, 0x6ad5add0
or edx, 0x6ad5add0
imul edx, r8d
add edx, r9d
cmp edx, 0x830f8f68
ja 0x1401aa0d0
mov ebp, r10d
and ebp, 1
add rbp, rcx
sub rax, rbp
nop
mov ecx, dword [0x1415a3e20]
and ecx, dword [0x1415a3e24]
mov edx, ecx
and edx, 0xb25eb091
mov r8d, edx
not r8d
mov r9d, ecx
and r9d, 0x80040000
and r8d, 0x3f7bb0bf
imul r8d, r9d
and ecx, 0x325ab091
or edx, 0x3f7bb0bf
imul edx, ecx
lea ecx, [rdx + r8]
add ecx, 0xa6a85b3
cmp ecx, 0x9103218a
ja 0x1401aa130
mov ecx, dword [0x1415a3e28]
mov edx, dword [0x1415a3e2c]
mov r8d, edx
and r8d, ecx
add ecx, edx
sub ecx, r8d
imul ecx, ecx, 0xfad2cdf9
add ecx, 0xf8dd6b51
cmp ecx, 0xfe97856f
ja 0x1401aa180
cmp rax, r13
jne 0x1401a9fed
mov qword [rsp + 0x100], r12
mov qword [rsp + 0x108], rsi
mov eax, dword [0x1415a3e38]
mov ecx, dword [0x1415a3e3c]
mov edx, eax
and edx, ecx
or eax, ecx
add eax, edx
add eax, 0xcb961bef
mov ecx, eax
not ecx
and ecx, 0xd7908ffa
mov edx, eax
and edx, 0x286f7005
imul edx, ecx
mov ecx, eax
and ecx, 0xd7908ffa
or eax, 0xd7908ffa
imul eax, ecx
add eax, edx
cmp eax, 0x56f6a5de
jne 0x1401aa26c
imul rdx, rbp, 0x38
add rdx, r15
lea rcx, [rdi + 0x168]
mov eax, r13d
not eax
and eax, 0x38
mov r9, r13
and r9, 0xffffffffffffffc7
imul r9, rax
mov eax, r13d
and eax, 0x38
mov r8, r13
or r8, 0x38
imul r8, rax
add r8, r9
mov rsi, r10
call fcn.14021bb50
mov rdx, rbp
shl rdx, 5
add rdx, rbx
mov r8, r13
shl r8, 5
mov rcx, rdi
call fcn.14021bb50
mov r10, rsi
mov word [rbx + 0x3d2], r10w
imul rax, rbp, 0x38
add r15, rax
lea rax, [rdi + 0x168]
mov qword [rsp + 0x28], rax
imul r14, r13, 0x38
mov rax, rbp
mov qword [rsp + 0xf8], rbp
shl rbp, 5
add rbp, rbx
shl r13, 5
mov rsi, rbx
nop dword [rax]
mov eax, dword [0x1415a3e40]
imul eax, dword [0x1415a3e44]
mov ecx, eax
and ecx, 0x111c5f8f
add ecx, ecx
neg ecx
lea ebx, [rax + rcx]
add ebx, 0x111c5f8f
or ebx, 0x4f16892d
mov eax, ebx
xor eax, 0xeae70dab
and ebx, 0x1518f254
add ebx, ebx
sub ebx, eax
mov rcx, qword [rsp + 0x28]
mov rdx, r15
mov r8, r14
mov r12, r10
call fcn.14021bb50
mov rcx, rdi
mov rdx, rbp
mov r8, r13
call fcn.14021bb50
mov r10, r12
mov word [rsi + 0x3d2], r10w
cmp ebx, 0x2f9173b3
jb 0x1401aa2a0
mov qword [rsp + 0x28], rsi
mov eax, dword [0x1415a3e48]
imul eax, dword [0x1415a3e4c]
xor eax, 0x7441c157
add eax, 0xf535703b
mov ecx, eax
and ecx, 0x39770aa0
or eax, 0x39770aa0
add eax, ecx
cmp eax, 0x3f30ade2
jae 0x1401aa390
mov rax, qword [rsp + 0x60]
mov qword [rsp + 0xa0], rax
movaps xmm0, xmmword [rsp + 0x30]
movaps xmm1, xmmword [rsp + 0x40]
movaps xmm2, xmmword [rsp + 0x50]
movaps xmmword [rsp + 0x90], xmm2
movaps xmmword [rsp + 0x80], xmm1
movaps xmmword [rsp + 0x70], xmm0
movaps xmm0, xmmword [rsp + 0xd0]
movaps xmm1, xmmword [rsp + 0xe0]
movups xmmword [rsp + 0xa8], xmm0
movups xmmword [rsp + 0xb8], xmm1
mov r8, qword [rsp + 0x28]
nop word cs:[rax + rax]
mov rax, qword [rsp + 0x60]
mov qword [rsp + 0xa0], rax
mov eax, dword [0x1415a3e50]
imul eax, dword [0x1415a3e54]
and eax, 0x5204c42
xor eax, 0x5004402
or eax, 0x105080b9
movaps xmm0, xmmword [rsp + 0x30]
movaps xmm1, xmmword [rsp + 0x40]
movaps xmm2, xmmword [rsp + 0x50]
movaps xmmword [rsp + 0x70], xmm0
movaps xmmword [rsp + 0x80], xmm1
movaps xmmword [rsp + 0x90], xmm2
movaps xmm0, xmmword [rsp + 0xd0]
movaps xmm1, xmmword [rsp + 0xe0]
movups xmmword [rsp + 0xa8], xmm0
movups xmmword [rsp + 0xb8], xmm1
cmp eax, 0xbee8bfc9
ja 0x1401aa3a0
movzx ebp, word [rdi + 0x3d2]
cmp bp, 0xb
ja 0x1401aa57c
lea r13, [rbp + 1]
mov r15, rdi
add r15, 0x3d8
mov r9, qword [rsp + 0x110]
sub r9, r10
xor eax, eax
test al, al
jne 0x1401aa440
mov eax, dword [0x1415a3e58]
xor edx, edx
div dword [0x1415a3e5c]
nop word cs:[rax + rax]
mov eax, dword [0x1415a3e60]
mov ecx, dword [0x1415a3e64]
mov edx, eax
xor edx, ecx
not edx
or eax, ecx
and eax, edx
mov ecx, 0x405b4c27
sub ecx, eax
or ecx, 0x6f7ec1b4
add ecx, eax
imul eax, ecx, 0xdce41d43
cmp eax, 0xb2dd384a
je 0x1401aa460
cmp r9, r13
jne 0x1401a9fed
shl r13, 3
mov rax, qword [rsp + 0xf8]
lea r12, [r8 + rax*8]
add r12, 0x3d8
nop word cs:[rax + rax]
mov eax, dword [0x1415a3e68]
xor edx, edx
div dword [0x1415a3e6c]
mov ecx, eax
not ecx
or eax, 0x5f37545f
or ecx, 0xa0c8aba0
and ecx, eax
not ecx
add ecx, 0x2d0ec285
cmp ecx, 0x78de8f87
jb 0x1401aa4c0
mov eax, dword [0x1415a3e70]
sub eax, dword [0x1415a3e74]
mov ecx, eax
and ecx, 0x2c781d66
add ecx, ecx
neg ecx
add eax, ecx
add eax, 0xac781d66
xor eax, 0xa6154290
imul rcx, rax, 0x74d2833
shr rcx, 0x20
sub eax, ecx
shr eax, 1
add eax, ecx
shr eax, 0x1f
cmp eax, 0x7fe9625e
jbe 0x1401aa63f
jmp 0x1401aa68e
ud2
mov eax, dword [0x1415a3ea8]
mov ecx, dword [0x1415a3eac]
mov edx, eax
not edx
and edx, ecx
mov r8d, ecx
not r8d
and r8d, eax
imul r8d, edx
mov edx, eax
and edx, ecx
or eax, ecx
imul eax, edx
add eax, r8d
add eax, 0xe1b43110
or eax, 0x86479716
cmp eax, 0xdbb1fdd2
jbe 0x1401aa5c0
ud2
mov eax, dword [0x1415a3eb0]
xor edx, edx
div dword [0x1415a3eb4]
mov ecx, eax
not ecx
and ecx, 0xfb20aa8b
mov edx, eax
and edx, 0x4df5574
imul edx, ecx
mov ecx, eax
and ecx, 0xfb20aa8b
or eax, 0xfb20aa8b
imul eax, ecx
add eax, edx
or eax, 0x74d45f40
add eax, 0xd2250be2
ud2
mov eax, dword [0x1415a3e78]
xor edx, edx
div dword [0x1415a3e7c]
mov ecx, eax
xor ecx, 0xc200014
xor eax, 0x8103a800
and eax, 0x8313aec3
and ecx, 0x7cec513c
or ecx, eax
xor ecx, 0xe462324e
imul rbx, rcx, 0x2609efab
shr rbx, 0x3c
mov rcx, r15
mov rdx, r12
mov r8, r13
call fcn.14021bb50
cmp ebx, 0x52210992
jne 0x1401aa6a0
mov rcx, r15
mov rdx, r12
mov r8, r13
call fcn.14021bb50
jmp 0x1401aa63f
mov eax, dword [0x1415a3e80]
and eax, dword [0x1415a3e84]
add eax, 0x42a426e9
mov ecx, eax
not ecx
mov edx, eax
and edx, 0x88b59fb2
and ecx, 0x774a604d
imul ecx, edx
mov edx, eax
and edx, 0x774a604d
or eax, 0x774a604d
imul eax, edx
add eax, ecx
or eax, 0x51c71921
cmp eax, 0xcb8bf7d9
ja 0x1401aa6a0
mov rax, qword [rsp + 0x100]
mov rax, qword [rax + 8]
xor ecx, ecx
mov r11, qword [rsp + 0x28]
mov rsi, qword [rsp + 0x108]
nop
mov edx, dword [0x1415a3e88]
sub edx, dword [0x1415a3e8c]
mov r8d, edx
not r8d
and r8d, 0x2cb1c5c9
mov r9d, edx
and r9d, 0x134e3a36
imul r9d, r8d
mov r8d, edx
and r8d, 0x2cb1c5c9
or edx, 0x2cb1c5c9
imul edx, r8d
add edx, r9d
add edx, 0xa57eec2e
and edx, 0x238a583b
cmp edx, 0x792b885f
jbe 0x1401aa770
mov rdx, qword [rdi + rcx*8 + 0x3d8]
mov qword [rdx + 0x160], rdi
mov word [rdx + 0x3d0], cx
nop dword [rax + rax]
mov edx, dword [0x1415a3e90]
and edx, dword [0x1415a3e94]
imul r10d, edx, 0xbbd52870
and r10d, 0x20b85d50
cmp rcx, rbp
setae dl
mov r8, qword [rdi + rcx*8 + 0x3d8]
mov qword [r8 + 0x160], rdi
mov word [r8 + 0x3d0], cx
mov r8, rcx
adc r8, 0
cmp r8, rbp
seta r9b
cmp r10d, 0xdc5d7b2
je 0x1401aa770
or dl, r9b
mov rcx, r8
je 0x1401aa700
mov qword [rsi + 0x58], r11
mov qword [rsi + 0x60], rax
mov ecx, dword [0x1415a3e98]
mov edx, dword [0x1415a3e9c]
mov r8d, ecx
not r8d
and r8d, edx
mov r9d, edx
not r9d
and r9d, ecx
imul r9d, r8d
mov r8d, ecx
and r8d, edx
or ecx, edx
imul ecx, r8d
add ecx, r9d
add ecx, 0xaeacf6a3
xor ecx, 0xd49b8f7b
cmp ecx, 0x5220af34
jbe 0x1401aa870
mov rcx, qword [rsp + 0xc0]
mov qword [rsi + 0x50], rcx
movaps xmm0, xmmword [rsp + 0xb0]
movups xmmword [rsi + 0x40], xmm0
movaps xmm0, xmmword [rsp + 0x70]
movaps xmm1, xmmword [rsp + 0x80]
movaps xmm2, xmmword [rsp + 0x90]
movaps xmm3, xmmword [rsp + 0xa0]
movups xmmword [rsi + 0x30], xmm3
movups xmmword [rsi + 0x20], xmm2
movups xmmword [rsi + 0x10], xmm1
movups xmmword [rsi], xmm0
mov qword [rsi + 0x68], rdi
mov qword [rsi + 0x70], rax
nop word cs:[rax + rax]
mov ecx, dword [0x1415a3ea0]
mov edx, dword [0x1415a3ea4]
xor edx, ecx
not edx
and edx, ecx
mov ecx, edx
not ecx
and ecx, 0xd8970fe2
and edx, 0x2768f01d
sub edx, ecx
mov ecx, edx
xor ecx, 0x5f7e0b64
and ecx, edx
mov edx, ecx
xor edx, 0x3748af5e
and ecx, 0x48b750a1
add ecx, ecx
sub ecx, edx
mov rdx, qword [rsp + 0xc0]
mov qword [rsi + 0x50], rdx
movaps xmm0, xmmword [rsp + 0xb0]
movups xmmword [rsi + 0x40], xmm0
movaps xmm0, xmmword [rsp + 0x70]
movaps xmm1, xmmword [rsp + 0x80]
movaps xmm2, xmmword [rsp + 0x90]
movaps xmm3, xmmword [rsp + 0xa0]
movups xmmword [rsi + 0x30], xmm3
movups xmmword [rsi + 0x20], xmm2
movups xmmword [rsi + 0x10], xmm1
movups xmmword [rsi], xmm0
mov qword [rsi + 0x68], rdi
mov qword [rsi + 0x70], rax
cmp ecx, 0xed457d
jb 0x1401aa870
add rsp, 0x118
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret