Function at 0x140015e86
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xe8
mov qword [rsp + 0xe0], r9
mov qword [rsp + 0xd8], r8
mov dword [rsp + 0xb0], edx
mov qword [rsp + 0xd0], rcx
lea rax, [rsp + 0x5c]
mov qword [rsp + 0xa0], rax
mov rcx, qword [rsp + 0xa0]
xor edx, edx
mov dword [rax], edx
lea rcx, [rsp + 0x58]
mov qword [rsp + 0xc0], rcx
mov rax, qword [rsp + 0xc0]
mov dword [rcx], edx
lea rax, [rsp + 0x40]
mov qword [rsp + 0xc8], rax
mov rcx, qword [rsp + 0xc8]
mov qword [rax], 0
lea rax, [rsp + 0x64]
mov byte [rax - 4], dl
mov dword [rax], 0x2dde37dd
mov dword [rax + 4], 0x2da537cf
mov dword [rax + 8], 0x2da237b6
mov dword [rax + 0xc], 0x2d96378e
cmp byte [rax - 4], dl
jne 0x140016070
xor eax, eax
mov r12d, 0xffffffff
mov r13d, 0xee025ff4
mov r10d, 0x927a0c6
mov r11d, 0xf6d85f39
mov r15d, 0x28af0570
mov edx, dword [rsp + rax*4 + 0x64]
mov ecx, edx
xor ecx, r12d
mov ebp, ecx
and ebp, edx
mov esi, ebp
xor esi, r12d
mov edi, edx
mov r8d, 0x17c881d0
and edi, r8d
mov ebx, ecx
mov r9d, 0xe8377e2f
and ebx, r9d
or ebx, edi
mov edi, edx
or edi, esi
and esi, r8d
and ebp, r9d
or ebp, esi
xor ebp, ebx
xor edi, r12d
or edi, ebp
mov r14d, edi
xor r14d, r12d
and edi, 0xafced2be
mov ebp, r14d
and ebp, 0x50312d41
or ebp, edi
xor ebp, 0x55081fbf
mov ebx, 0xfac6cd01
and r14d, ebx
or r14d, ebp
mov ebp, r14d
xor ebp, r12d
and ebp, 0x7aa1699e
mov edi, 0x855e9661
and r14d, edi
or r14d, ebp
mov r9d, r14d
xor r9d, edi
xor r14d, 0x10a1200a
and ecx, 0x53932fe
xor edx, ebx
or edx, ecx
mov ecx, edx
xor ecx, r12d
mov ebx, 0x5b8f0a90
and ecx, ebx
and edx, 0xa470f56f
or edx, ecx
mov ebp, edx
xor edx, ebx
mov r8d, r9d
xor r8d, edx
and r8d, r9d
mov ecx, 0x11fda00b
and r14d, ecx
and r9d, r13d
or r9d, r14d
xor ebp, 0xa4005564
and edx, ecx
and ebp, r13d
or ebp, edx
xor ebp, r9d
mov ecx, r8d
xor ecx, r12d
mov edx, ecx
and edx, r10d
and r8d, r11d
or r8d, edx
mov edx, ebp
xor edx, r12d
or ecx, edx
and edx, r10d
and ebp, r11d
or ebp, edx
xor ebp, r8d
xor ecx, r12d
or ecx, ebp
mov edx, ecx
xor edx, r15d
and edx, ecx
xor ecx, r12d
and ecx, r15d
mov ebp, ecx
and ebp, edx
xor edx, ecx
or edx, ebp
mov dword [rsp + rax*4 + 0x64], edx
inc rax
cmp rax, 4
jne 0x140015f50
xor ecx, ecx
mov edx, 0xb
mov r8d, 0xf85d7891
mov r9d, 0x20a
call fcn.14001939f
lea rcx, [0x140020018]
lea rdx, [rsp + 0x64]
xor r8d, r8d
xor r9d, r9d
call rax
mov dword [rsp + 0xb4], eax
mov eax, 4
lea rcx, [rsp + 0x60]
or rcx, rax
mov qword [rsp + 0xb8], rcx
mov eax, 0xe838c923
movabs r15, 0xf2c6e729135ba096
movabs r12, 0x31389f7afefe89bf
movabs rbp, 0x1ff12c20b7128d29
mov qword [rsp + 0x88], rcx
mov qword [rsp + 0x98], rcx
mov qword [rsp + 0x90], rcx
mov dword [rsp + 0x3c], ecx
xor ebx, ebx
cmp eax, 0xeb947d41
jg 0x140016160
cmp eax, 0xcf45d81e
jg 0x1400161ae
cmp eax, 0xaac7269a
jg 0x1400162e9
cmp eax, 0x81f05d4e
je 0x14001637f
cmp eax, 0x8f3969ca
jne 0x1400160f9
mov rsi, qword [rsp + 0x40]
xor eax, eax
mov qword [rsp + 0x90], rax
xor ecx, ecx
mov edx, 0xb
mov r8d, 0xc1613d9c
mov r9d, 0x20f
call fcn.14001939f
mov rcx, rsi
call rax
mov rsi, qword [0x140020018]
jmp 0x14001667d
cmp eax, 0x48c150d
jle 0x14001627f
cmp eax, 0x57dbaed6
jg 0x140016319
cmp eax, 0x48c150e
je 0x1400163a3
cmp eax, 0x339ee835
jne 0x1400160f9
mov rax, qword [rsp + 0xa8]
mov eax, 0x2ca6f3a
mov rcx, qword [rsp + 0x98]
mov qword [rsp + 0x88], rcx
jmp 0x1400160f9
cmp eax, 0xd45bb58c
jg 0x140016334
cmp eax, 0xcf45d81f
je 0x140016597
cmp eax, 0xcfb05c3b
jne 0x1400160f9
mov rsi, qword [0x140020018]
xor ecx, ecx
mov edx, 0xb
mov r8d, 0x847fc36c
mov r9d, 0x20c
call fcn.14001939f
mov rcx, rsi
xor edx, edx
call rax
mov rax, qword [rsp + 0x50]
mov rcx, qword [rsp + 0xd8]
mov qword [rcx], rax
mov eax, dword [rsp + 0x38]
mov rcx, qword [rsp + 0xe0]
mov dword [rcx], eax
mov edi, dword [rsp + 0x3c]
mov eax, edi
mov r8b, 0xff
xor al, r8b
mov ecx, eax
mov bl, 0x1a
and cl, bl
mov edx, edi
xor dl, bl
and dl, dil
mov ebx, ecx
and bl, dl
xor cl, dl
or cl, bl
xor dl, r8b
and dl, 0xe4
and cl, 0x1b
or cl, dl
mov ebx, ecx
xor bl, r8b
mov edx, ebx
mov r9b, 0xc6
and dl, r9b
mov r10b, 0x39
and cl, r10b
or cl, dl
mov edx, edi
and dl, r9b
and al, r10b
or al, dl
xor al, r8b
xor al, cl
or al, bl
xor ebx, ebx
cmp al, r8b
setne al
mov qword [rsp + 0x90], rax
mov eax, 0xc0280e34
jmp 0x1400160f9
cmp eax, 0xfc8e208c
jg 0x140016364
cmp eax, 0xeb947d42
je 0x140016628
cmp eax, 0xf2da4238
jne 0x1400160f9
mov rsi, qword [rsp + 0x40]
xor ecx, ecx
mov edx, 0xb
mov r8d, 0x85fe34a3
mov r9d, 0x20e
call fcn.14001939f
mov rcx, rsi
mov rdx, qword [rsp + 0xd0]
mov r8d, dword [rsp + 0xb0]
xor r9d, r9d
call rax
test eax, eax
mov eax, 0x8f3969ca
mov ecx, 0xcf45d81f
cmove eax, ecx
jmp 0x1400160f9
cmp eax, 0xaac7269b
je 0x14001666c
cmp eax, 0xc0280e34
jne 0x1400160f9
mov eax, 0x339ee835
mov rcx, qword [rsp + 0x90]
mov qword [rsp + 0x98], rcx
jmp 0x1400160f9
cmp eax, 0x57dbaed7
je 0x1400166ba
cmp eax, 0x68f2733f
jne 0x1400160f9
jmp 0x14001679b
cmp eax, 0xd45bb58d
je 0x1400166ce
cmp eax, 0xe838c923
jne 0x1400160f9
cmp dword [rsp + 0xb4], 0
mov eax, 0x57dbaed7
mov ecx, 0x48c150e
cmove eax, ecx
jmp 0x1400160f9
cmp eax, 0xfc8e208d
je 0x14001674d
cmp eax, 0x2ca6f3a
jne 0x1400160f9
jmp 0x14001698f
mov rcx, qword [rsp + 0x50]
call fcn.14001519e
mov dword [rsp + 0x38], 0
mov eax, 0xcfb05c3b
mov dword [rsp + 0x3c], 0
jmp 0x1400160f9
mov byte [rsp + 0x60], bl
mov dword [rsp + 0x64], 0x617b4bec
mov dword [rsp + 0x68], 0x617c4bc9
mov dword [rsp + 0x6c], 0x616d4bc0
mov dword [rsp + 0x70], 0x617c4bef
mov dword [rsp + 0x74], 0x617e4bcd
mov dword [rsp + 0x78], 0x61714bd7
mov dword [rsp + 0x7c], 0x61194ba3
cmp byte [rsp + 0x60], bl
movabs rsi, 0xdbb3b002c5e9ccb3
movabs r10, 0xda4694350bc2da4e
movabs r11, 0x6de8b3e37214afac
movabs r12, 0x139e16a6343eec57
mov r15d, 0xb4da8828
mov r13d, 0x43dc7890
mov r9d, 0xffffffff
mov r14d, 0x40014283
jne 0x140016514
mov r8d, 1
xor ecx, ecx
mov edi, dword [rsp + r8*4 + 0x60]
mov rbx, rsi
mov esi, edi
xor esi, r9d
mov edx, edi
and edx, 0xf3c15f3e
mov ebp, esi
and ebp, 0xc3ea0c1
or ebp, edx
mov edx, ebp
xor edx, 0x21000920
xor ebp, 0x81
and edx, 0x21180920
and ebp, r14d
or ebp, edx
mov eax, ebp
xor eax, r14d
xor ebp, 0x3dc3810
and esi, 0x49581a49
and edi, 0xb6a7e5b6
or edi, esi
mov esi, edi
xor esi, 0x200141a2
and esi, 0x61194ba3
xor edi, 0xd7beae15
or edi, esi
mov esi, edi
xor esi, r9d
and esi, r15d
and edi, 0x4b2577d7
or edi, esi
mov rsi, rbx
mov edx, edi
xor edx, 0x8210747
xor edi, r15d
mov ebx, eax
xor ebx, edi
and ebx, eax
and ebp, r13d
and eax, 0x20010323
or eax, ebp
and edi, r13d
and edx, 0xbc23876f
or edx, edi
xor edx, eax
mov eax, ebx
and eax, edx
xor edx, ebx
or edx, eax
mov dword [rsp + r8*4 + 0x60], edx
add rcx, r12
sub rcx, r10
sub rcx, r12
add rcx, r11
mov rax, r11
sub rax, rcx
lea rcx, [rsi + r10]
mov rdx, rsi
sub rdx, rcx
add rdx, rax
mov ecx, 1
sub rcx, rdx
inc r8
cmp r8, 8
jne 0x140016431
mov rbp, qword [0x140020018]
mov r12, qword [rsp + 0xa0]
xor ecx, ecx
mov edx, 0xb
mov r8d, 0x5a9dfacd
mov r9d, 0x20b
call fcn.14001939f
lea rcx, [rsp + 0x58]
mov qword [rsp + 0x20], rcx
mov dword [rsp + 0x28], 0
mov rcx, rbp
mov rdx, qword [rsp + 0xb8]
mov r8, r12
mov r9d, 4
call rax
test eax, eax
mov eax, 0xfc8e208d
mov ecx, 0x68f2733f
cmove eax, ecx
xor ebx, ebx
movabs r15, 0xf2c6e729135ba096
movabs r12, 0x31389f7afefe89bf
movabs rbp, 0x1ff12c20b7128d29
jmp 0x1400160f9
mov esi, dword [rsp + 0x38]
mov rdi, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x50]
xor ecx, ecx
mov edx, 0xb
mov r8d, 0x13a2df68
mov r9d, 0x210
call fcn.14001939f
mov rcx, rdi
mov rdx, rbp
movabs rbp, 0x1ff12c20b7128d29
movabs r12, 0x31389f7afefe89bf
mov r8d, esi
xor r9d, r9d
call rax
mov rsi, rax
mov rdi, qword [rsp + 0x40]
xor ecx, ecx
mov edx, 0xb
mov r8d, 0xc1613d9c
mov r9d, 0x20f
call fcn.14001939f
mov rcx, rdi
call rax
mov rcx, qword [rsp + 0x48]
call fcn.14001519e
test esi, esi
mov eax, 0x81f05d4e
mov ecx, 0xcfb05c3b
cmove eax, ecx
mov cl, 1
mov dword [rsp + 0x3c], ecx
jmp 0x1400160f9
mov rsi, qword [0x140020018]
xor eax, eax
mov qword [rsp + 0x98], rax
xor ecx, ecx
mov edx, 0xb
mov r8d, 0x847fc36c
mov r9d, 0x20c
call fcn.14001939f
mov rcx, rsi
xor edx, edx
call rax
mov rcx, qword [rsp + 0x48]
call fcn.14001519e
mov eax, 0x339ee835
jmp 0x1400160f9
mov rsi, qword [0x140020018]
xor eax, eax
mov qword [rsp + 0x90], rax
xor ecx, ecx
mov edx, 0xb
mov r8d, 0x847fc36c
mov r9d, 0x20c
call fcn.14001939f
mov rcx, rsi
xor edx, edx
call rax
mov rcx, qword [rsp + 0x48]
call fcn.14001519e
mov rcx, qword [rsp + 0x50]
call fcn.14001519e
mov eax, 0xc0280e34
jmp 0x1400160f9
mov eax, 0x2ca6f3a
xor ecx, ecx
mov qword [rsp + 0x88], rcx
jmp 0x1400160f9
mov ecx, dword [rsp + 0x38]
call fcn.140015329
mov qword [rsp + 0x50], rax
mov esi, dword [rsp + 0x5c]
mov rbp, qword [0x140020018]
mov rdi, qword [rsp + 0x48]
xor ecx, ecx
mov edx, 0xb
mov r8d, 0xd894ff16
mov r9d, 0x20d
call fcn.14001939f
mov dword [rsp + 0x30], ebx
mov dword [rsp + 0x28], ebx
mov qword [rsp + 0x20], 0
mov rcx, rbp
movabs rbp, 0x1ff12c20b7128d29
movabs r12, 0x31389f7afefe89bf
lea rdx, [rsp + 0x40]
mov r8, rdi
mov r9d, esi
call rax
test eax, eax
mov eax, 0xaac7269b
mov ecx, 0xf2da4238
cmove eax, ecx
jmp 0x1400160f9
mov rbp, qword [0x140020018]
xor eax, eax
mov qword [rsp + 0x88], rax
xor ecx, ecx
mov edx, 0xb
mov r8d, 0x847fc36c
mov r9d, 0x20c
call fcn.14001939f
mov rcx, rbp
movabs rbp, 0x1ff12c20b7128d29
movabs r12, 0x31389f7afefe89bf
xor edx, edx
call rax
mov eax, 0x2ca6f3a
jmp 0x1400160f9
mov ecx, dword [rsp + 0x5c]
call fcn.140015329
movabs r11, 0xaa424bb5e971311b
movabs r13, 0xc10abe543adf9ea9
movabs rsi, 0xeca1f6fb76ceb68d
mov qword [rsp + 0x48], rax
lea rax, [rsp + 0x38]
mov qword [rsp + 0xa8], rax
mov rax, qword [rsp + 0xa8]
mov dword [rsp + 0x38], 0
mov byte [rsp + 0x60], bl
mov dword [rsp + 0x64], 0x43d5ba1e
mov dword [rsp + 0x68], 0x43dcba25
mov dword [rsp + 0x6c], 0x43ddba12
mov dword [rsp + 0x70], 0x43d1ba31
mov dword [rsp + 0x74], 0x43c0ba25
mov dword [rsp + 0x78], 0x43d1ba1a
mov dword [rsp + 0x7c], 0x43d3ba38
mov dword [rsp + 0x80], 0x43dcba22
mov dword [rsp + 0x84], 0x43b4ba56
cmp byte [rsp + 0x60], bl
mov r14, rbp
jne 0x140016929
mov eax, 1
xor ecx, ecx
mov edx, dword [rsp + rax*4 + 0x60]
mov ebx, edx
mov r8d, 0xffffffff
xor ebx, r8d
mov r12, r14
mov r14, rsi
mov edi, edx
mov ebp, ebx
and ebp, edx
mov r9d, 0xbc4b45a9
mov esi, ebx
and esi, 0x43b4ba56
and edx, r9d
or edx, esi
mov r9d, 0xbc4b45a9
mov esi, 0x67e381fc
xor edx, r8d
or edx, ebx
and ebx, 0x981c7e03
and edi, esi
or edi, ebx
xor edi, esi
mov ebx, edi
and ebx, ebp
xor ebp, edi
or ebp, ebx
xor ebp, r8d
or ebp, r9d
mov ebx, edx
xor ebx, r8d
and ebx, ebp
xor ebp, r8d
mov edi, ebp
xor edi, edx
and edi, ebp
and edx, ebp
or edx, ebx
mov ebp, edi
and ebp, edx
xor edx, edi
mov rsi, r14
mov r14, r12
movabs r12, 0x31389f7afefe89bf
or edx, ebp
mov dword [rsp + rax*4 + 0x60], edx
sub rcx, r15
add rcx, rsi
add rcx, r13
sub rcx, rsi
movabs rdx, 0xef6efbb4b5bea821
add rcx, rdx
add rcx, r15
sub rdx, rcx
sub rdx, r11
add rdx, r12
add rdx, r11
mov rcx, r12
sub rcx, rdx
movabs rdx, 0x946b20d3d40898d0
sub rcx, rdx
add rcx, r14
sub rcx, r13
sub rcx, r14
add rcx, rdx
inc rcx
inc rax
cmp rax, 0xa
jne 0x14001684a
mov rbp, qword [0x140020018]
mov rsi, qword [rsp + 0xa8]
xor ecx, ecx
mov edx, 0xb
mov r8d, 0x5a9dfacd
mov r9d, 0x20b
call fcn.14001939f
lea rcx, [rsp + 0x58]
mov qword [rsp + 0x20], rcx
mov dword [rsp + 0x28], 0
mov rcx, rbp
mov rdx, qword [rsp + 0xb8]
mov r8, rsi
mov r9d, 4
call rax
test eax, eax
mov eax, 0xeb947d42
mov ecx, 0xd45bb58d
cmove eax, ecx
mov rbp, r14
jmp 0x1400160f7
mov rax, qword [rsp + 0xc8]
mov rax, qword [rsp + 0xc0]
mov rax, qword [rsp + 0xa0]
mov rax, qword [rsp + 0x88]
and al, 1
add rsp, 0xe8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret