Function at 0x1402d73e0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xb8
mov rdi, r9
mov r14, rdx
mov rax, qword [0x1405650e0]
xor rax, rsp
mov qword [rsp + 0xb0], rax
test rcx, rcx
sete al
test rdx, rdx
sete dl
or dl, al
test r9, r9
setne al
sete r9b
xor r9b, dl
not dl
and dl, al
or dl, r9b
xor dl, 1
or dl, r9b
test r8, r8
sete al
setne r10b
mov r9d, edx
xor r9b, r10b
and r9b, dl
xor esi, esi
test r9b, 1
jne 0x1402d7d40
xor al, dl
and r10b, dl
xor al, 1
or al, r10b
xor al, 1
mov edx, r10d
and dl, al
jne 0x1402d7d40
xor r10b, al
test r10b, 1
jne 0x1402d7d40
mov qword [rsp + 0x58], rcx
mov qword [rsp + 0x60], r8
mov rsi, qword [0x140547738]
mov eax, dword [0x14057755c]
lea ecx, [rax - 1]
mov edx, 0x3bc7
add edx, dword [0x140547778]
imul ecx, eax
movsxd rax, edx
add rax, qword [0x140547810]
mov edx, 0x57375c5b
call qword [case.0x14013cbc3.0]
test al, 1
je 0x1402d74c5
movsxd r15, dword [rsi]
mov eax, dword [0x140577560]
cmp eax, 0x16
jle 0x1402d74c9
mov eax, dword [rsi]
jmp 0x1402d74b7
mov ebp, 0x3bc7
mov r12d, 0xed2a36cd
lea rbx, [rsp + 0x80]
nop dword [rax]
mov eax, dword [0x140577560]
cmp eax, 0x62
jg 0x1402d7550
mov eax, dword [0x14054778c]
add eax, ebp
cdqe
add rax, qword [0x1405477e0]
mov r8d, dword [0x140547960]
add r8d, r12d
mov rcx, rsi
mov rdx, rbx
call qword [case.0x14013cbc3.0]
mov r13, qword [rsp + 0x80]
mov eax, dword [0x14057755c]
mov ecx, dword [0x140547960]
add ecx, eax
inc ecx
imul ecx, eax
and ecx, 1
mov eax, dword [0x140547774]
add eax, ebp
cdqe
add rax, qword [0x1405477c8]
mov edx, 0x429b7649
call qword [case.0x14013cbc3.0]
test al, 1
jne 0x1402d755e
cmp dword [0x140547960], 0xabce67ea
jne 0x1402d74e0
jmp 0x1402d74eb
movabs rax, 0x7a82685cbb2a07b6
movabs rcx, 0xb44fa8873f026c5c
mov rdx, rcx
sub rdx, rax
sub rdx, r15
add rdx, rax
sub rdx, rcx
movabs rax, 0xe7bdc453cbba8720
add r13, rax
sub rax, r13
mov rcx, rdx
xor rcx, rax
and rax, rdx
lea rax, [rcx + rax*2]
movabs rcx, 0xbae5953e49601ea
add rax, rcx
sub rcx, rax
mov qword [rsp + 0x48], rcx
movabs rax, 0xc6b8ad2edbfe1683
movabs r12, 0x394752d12401e97d
add r12, rax
mov eax, dword [0x14044a7f8]
mov dword [rsp + 0x50], eax
movabs r8, 0xd1a0d112f0c754d0
mov rbx, qword [rsp + 0x60]
cmp rbx, 0x10
jae 0x1402d777f
mov esi, 0x10
sub rsi, rbx
mov rax, qword [rsp + 0x58]
lea rdx, [rax + rbx]
add rdx, 0x50
lea rcx, [rsp + 0xa0]
mov r8, rsi
call fcn.14041d3c0
lea rcx, [rsp + rsi]
add rcx, 0xa0
mov rdx, r14
mov r8, rbx
call fcn.14041d3c0
add qword [rsp + 0x48], r12
mov r13d, dword [0x140547730]
mov ebx, 0x3bc7
lea rsi, [rsp + 0x80]
lea r15d, [r13 + r13]
lea rax, [fcn.1402d73e0]
lea ebp, [rax + rax]
add ebp, 0x9e0
nop word cs:[rax + rax]
mov eax, dword [0x1405477a4]
add eax, ebx
cdqe
add rax, qword [0x1405477d8]
mov ecx, 0xad839a66
call qword [case.0x14013cbc3.0]
test al, 1
je 0x1402d76ce
mov eax, dword [0x140547798]
add eax, ebx
cdqe
add rax, qword [0x140547820]
mov ecx, r13d
mov rdx, rsi
mov r8d, 0x712598ba
call qword [case.0x14013cbc3.0]
mov r12d, dword [rsp + 0x80]
mov eax, dword [0x1405477a8]
add eax, ebx
cdqe
add rax, qword [0x140547840]
mov ecx, r12d
mov edx, 0x4c1390ef
call qword [case.0x14013cbc3.0]
test al, 1
jne 0x1402d7749
lea ecx, [r15 - 1]
mov edx, r15d
shl edx, cl
mov eax, dword [0x140547960]
mov r8d, eax
sub r8d, r15d
add r8d, edx
mov ecx, 0xb376dd46
sub ecx, r8d
mov r9d, ecx
xor r9d, edx
and ecx, edx
lea ecx, [r9 + rcx*2]
mov edx, ecx
sub edx, r8d
add edx, 0xa425f28e
add cl, 0xa4
mov r8d, edx
shl r8d, cl
mov ecx, edx
sub ecx, r8d
imul ecx, r8d
sub edx, ecx
imul edx, ecx
mov r8d, edx
shl r8d, cl
add r8d, edx
mov dword [0x140547730], r8d
mov ecx, eax
xor ecx, 0x54319817
and eax, 0x54319817
lea eax, [rcx + rax*2]
test ebp, eax
jne 0x1402d7660
jmp 0x1402d7680
mov eax, dword [0x14057755c]
xor eax, eax
nop word cs:[rax + rax]
test al, al
jne 0x1402d7760
test r13d, r12d
mov qword [rsp + 0x68], r13
je 0x1402d7887
mov dword [rsp + 0x44], 0
jmp 0x1402d7da5
movabs rax, 0xd76ee56cbc8a68c7
lea rcx, [rbx + rax]
movabs rdx, 0xcda3c8b34824af14
add rcx, rdx
add rcx, 0xfffffffffffffff0
sub rcx, rax
sub rcx, rdx
movups xmm0, xmmword [r14 + rcx]
movaps xmmword [rsp + 0xa0], xmm0
mov ecx, dword [0x140547968]
add ecx, r8d
mov r15, rbx
shr r15, cl
mov rbp, qword [rsp + 0x58]
lea rsi, [rbp + 0x50]
movabs r13, 0x59fb92ffa4ee7ceb
add rdi, 0x10
add r14, 0x10
lea rbx, [rsp + 0x90]
nop word cs:[rax + rax]
mov rax, qword [rbp + 0x20]
mov rcx, rbp
mov rdx, rsi
mov r8, rbx
call qword [case.0x14013cbc3.0]
movups xmm0, xmmword [r14 - 0x10]
movups xmmword [rsi], xmm0
mov eax, dword [rsp + 0x90]
xor eax, dword [r14 - 0x10]
mov dword [rdi - 0x10], eax
mov eax, dword [rsp + 0x94]
xor eax, dword [r14 - 0xc]
mov dword [rdi - 0xc], eax
mov eax, dword [r14 - 8]
mov ecx, dword [rsp + 0x98]
mov edx, ecx
not edx
mov r8d, eax
xor r8d, edx
and edx, eax
not r8d
and r8d, ecx
or r8d, edx
mov dword [rdi - 8], r8d
mov eax, dword [r14 - 4]
mov ecx, eax
xor ecx, eax
not ecx
and ecx, dword [rsp + 0x9c]
xor ecx, eax
mov dword [rdi - 4], ecx
mov rax, qword [0x140576db0]
sub rax, r13
add r15, r13
add r15, rax
dec r15
je 0x1402d7628
add rdi, 0x10
add r14, 0x10
jmp 0x1402d77f0
mov ecx, dword [0x140577560]
mov eax, 0x3bc7
add eax, dword [0x140547788]
cdqe
add rax, qword [0x1405477d0]
mov edx, 0x95cab820
call qword [case.0x14013cbc3.0]
test al, 1
je 0x1402d7d70
jmp 0x1402d7d67
mov rbx, qword [rsp + 0x80]
mov rcx, qword [rsp + 0x58]
mov rax, qword [rcx + 0x20]
lea rdx, [rcx + 0x50]
lea r8, [rsp + 0x90]
call qword [case.0x14013cbc3.0]
mov rax, qword [0x140547968]
lea rdx, [rsi + rax]
add rdx, 0xfffffffffffffffb
mov rax, qword [rsp + 0x60]
xor rdx, rax
mov ecx, eax
not ecx
xor rax, 0xfffffffffffffffc
and ecx, 3
or rax, rcx
not rax
or rax, rcx
mov ecx, edx
not ecx
xor rdx, 0xfffffffffffffffc
and ecx, 3
or rcx, rdx
mov rdx, rcx
not rdx
xor rcx, rdx
and rcx, rax
and rax, rdx
xor rcx, rdx
or rcx, rax
mov rdx, rcx
not rdx
mov rax, qword [0x1405769a0]
add rdx, rax
mov qword [rsp + 0x50], rdx
cmp rbx, 4
jae 0x1402d7b37
xor r15d, r15d
cmp qword [rsp + 0x50], 0
je 0x1402d7d2a
xor ebp, ebp
mov rax, qword [rsp + 0x68]
and eax, r12d
mov qword [rsp + 0x68], rax
mov eax, 3
sub rax, rsi
mov qword [rsp + 0x48], rax
nop word cs:[rax + rax]
movzx ecx, byte [0x140547970]
mov edx, ecx
xor dl, 0x9b
mov eax, ecx
and al, 0x1b
add al, al
add al, dl
cmp dword [rsp + 0x68], 1
adc al, 0xff
not al
movzx edx, byte [0x14044a800]
xor r8d, r8d
sub r8b, dl
mov edx, r8d
mov r9d, dword [rsp + 0x44]
xor dl, r9b
and r8b, r9b
add r8b, r8b
add r8b, dl
mov edx, r8d
neg dl
dec r8b
add cl, 0x9a
xor cl, al
xor al, dl
mov r9d, r8d
xor r9b, dl
and r9b, cl
xor r9b, dl
mov ecx, r9d
not cl
xor r9b, r8b
and cl, dl
or cl, r9b
not cl
or cl, al
not cl
movzx eax, cl
mov rcx, qword [0x1405769a0]
movabs r8, 0x3b237c54b8b27f6b
add rcx, r8
movabs rdx, 0xd49fa688cf60402d
sub rcx, rdx
sub rcx, r8
add rcx, rdx
add rcx, rax
mov qword [0x1405769a0], rcx
movzx ebx, byte [r14 + r15]
movzx esi, byte [rsp + r15 + 0x90]
mov eax, dword [0x14054777c]
mov ecx, dword [0x140547960]
add eax, ecx
add eax, 0x5431d3dd
cdqe
add rax, qword [0x140547800]
mov dword [rsp + 0x20], 0xcd35d1d7
mov ecx, esi
mov edx, ebx
lea r13, [rsp + 0x8c]
mov r8, r13
lea r12, [rsp + 0x80]
mov r9, r12
call qword [case.0x14013cbc3.0]
movzx ecx, byte [rsp + 0x8c]
movzx r9d, byte [rsp + 0x80]
mov eax, dword [0x1405477a0]
mov edx, dword [0x140547960]
add eax, edx
add eax, 0x5431d3dd
cdqe
add rax, qword [0x140547808]
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x20], r13
mov dword [rsp + 0x30], 0x27bf823e
mov edx, ebx
mov r8d, esi
call qword [case.0x14013cbc3.0]
movzx eax, byte [rsp + 0x80]
or al, byte [rsp + 0x8c]
mov byte [rdi + r15], al
mov rax, rbp
xor rax, 1
mov rcx, qword [0x140547968]
xor edx, edx
sub rdx, rcx
mov r8, qword [rsp + 0x48]
mov rcx, r8
xor rcx, rdx
and rdx, r8
lea r8, [rcx + rdx*2]
neg r8
not rbp
xor r8, rbp
not r8
lea rcx, [rcx + rdx*2]
dec rcx
and rcx, r8
or rcx, rbp
not rcx
movabs rdx, 0x574dd2468cd447ad
sub rax, rdx
lea rbp, [rax + rcx*2]
add rbp, rdx
cmp rbp, qword [rsp + 0x50]
je 0x1402d7d2a
inc r15
jmp 0x1402d7980
mov qword [rsp + 0x70], rdi
add rbx, rcx
sub rbx, rax
add rbx, 0xfffffffffffffffd
mov qword [rsp + 0x48], rbx
xor r15d, r15d
mov rdi, qword [rsp + 0x70]
nop word cs:[rax + rax]
mov rbx, r15
mov eax, dword [0x1405477b0]
mov ecx, 0x3bc7
add eax, ecx
cdqe
add rax, qword [0x140547838]
lea r13, [rsp + 0x80]
mov qword [rsp + 0x30], r13
lea rcx, [rsp + 0x8c]
mov qword [rsp + 0x28], rcx
lea rcx, [rsp + 0x7f]
mov qword [rsp + 0x20], rcx
mov dword [rsp + 0x38], 0x557c410f
mov rcx, r14
mov rdx, r15
lea r8, [rsp + 0x90]
lea r9, [rsp + 0x7e]
call qword [case.0x14013cbc3.0]
movzx eax, byte [rsp + 0x7e]
movzx ecx, byte [rsp + 0x7f]
and cl, byte [rsp + 0x80]
movzx edx, byte [rsp + 0x8c]
mov r8d, edx
xor dl, al
not al
xor r8b, al
and r8b, al
or r8b, dl
not r8b
or r8b, cl
mov byte [rdi + r15], r8b
mov rax, r15
or rax, 1
movzx ecx, byte [r14 + rax]
movzx edx, byte [rsp + rax + 0x90]
not dl
mov r8d, edx
and r8b, cl
or dl, cl
not dl
or dl, r8b
mov byte [rdi + rax], dl
mov rax, qword [0x140547968]
lea rbp, [rsi + rax]
add rbp, 0xfffffffffffffffe
or rbp, r15
movzx r15d, byte [r14 + rbp]
movzx esi, byte [rsp + rbp + 0x90]
mov eax, dword [0x140547770]
mov r13d, 0x3bc7
add eax, r13d
cdqe
add rax, qword [0x1405477e8]
mov dword [rsp + 0x20], 0xa42ada04
mov ecx, esi
mov edx, r15d
lea r8, [rsp + 0x8c]
lea r9, [rsp + 0x80]
call qword [case.0x14013cbc3.0]
movzx eax, byte [rsp + 0x80]
and r15b, byte [rsp + 0x8c]
xor sil, al
not sil
and sil, al
mov eax, dword [0x1405477b4]
add eax, r13d
cdqe
add rax, qword [0x140547830]
mov ecx, r15d
mov edx, esi
movabs rsi, 0xd1a0d112f0c754d0
lea r8, [rsp + 0x80]
mov r9d, 0x6e0e4ee4
call qword [case.0x14013cbc3.0]
movzx eax, byte [rsp + 0x80]
mov byte [rdi + rbp], al
mov rax, rbx
not rax
mov rcx, rbx
xor rcx, 3
and rax, 0xfffffffffffffffc
or rax, rcx
not rax
or rax, rcx
movzx ecx, byte [rsp + rax + 0x90]
xor cl, byte [r14 + rax]
mov byte [rdi + rax], cl
movabs rax, 0x8c38140f45c0a7c3
lea r15, [rsi + rax]
add r15, qword [0x140547968]
sub r15, rax
add r15, rbx
mov rax, qword [rsp + 0x48]
test rax, rax
je 0x1402d794c
add rax, 0xfffffffffffffffc
mov qword [rsp + 0x48], rax
jmp 0x1402d7b60
movaps xmm0, xmmword [rsp + 0xa0]
mov rax, qword [rsp + 0x58]
movups xmmword [rax + 0x50], xmm0
mov rsi, qword [rsp + 0x60]
mov rcx, qword [rsp + 0xb0]
xor rcx, rsp
call fcn.1403f5480
mov rax, rsi
add rsp, 0xb8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov al, 1
test al, al
jne 0x1402d7d93
nop dword [rax]
mov eax, dword [0x14057755c]
mov ecx, dword [0x140547960]
lea edx, [rax + rcx]
inc edx
imul edx, eax
and edx, 1
add ecx, 0x54319816
cmp edx, ecx
jne 0x1402d7d70
jmp 0x1402d7d67
xor r13d, r13d
mov dword [rsp + 0x44], 0
cmp dword [rsp + 0x50], 0
jg 0x1402d7de9
mov eax, 0x3bc7
add eax, dword [0x140547780]
cdqe
add rax, qword [0x1405477f0]
lea rdx, [rsp + 0x80]
mov rcx, qword [rsp + 0x60]
mov r8d, 0x7432830c
call qword [case.0x14013cbc3.0]
test al, 1
movabs rsi, 0xd1a0d112f0c754d0
je 0x1402d78b9
jmp 0x1402d7d2a
mov ebp, 0x3bc7
lea rsi, [rsp + 0x80]
lea rax, [fcn.1402d73e0]
lea r15d, [rax + rax]
add r15d, 0x3bc0
mov dword [rsp + 0x44], 0
jmp 0x1402d7e3a
movzx eax, byte [rsp + 0x80]
mov dword [rsp + 0x44], eax
inc r13d
cmp r13d, dword [rsp + 0x50]
jge 0x1402d7da5
mov eax, dword [0x140547790]
add eax, ebp
cdqe
add rax, qword [0x1405477c0]
mov ecx, r13d
mov rdx, rsi
mov r8d, 0x5d8790f3
call qword [case.0x14013cbc3.0]
mov rbx, qword [rsp + 0x80]
mov eax, dword [0x1405477ac]
mov ecx, dword [0x140547960]
mov edx, ecx
xor edx, 0x54315c4f
and ecx, 0x54315c4f
lea ecx, [rdx + rcx*2]
sub eax, ecx
cdqe
add rax, qword [0x140547818]
mov ecx, 0xc328a4a5
call qword [case.0x14013cbc3.0]
mov eax, dword [0x140547784]
add eax, ebp
cdqe
add rax, qword [0x140547828]
lea rcx, [rsp + 0x8c]
mov rdx, rsi
mov r8d, 0xab99f059
call qword [case.0x14013cbc3.0]
mov eax, dword [0x140577560]
cmp eax, 0x29
jg 0x1402d7ec0
add rbx, qword [rsp + 0x48]
movzx ebx, byte [rbx]
mov eax, dword [0x14057755c]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x1402d7f20
nop word cs:[rax + rax]
mov eax, dword [0x14054779c]
add eax, ebp
cdqe
add rax, qword [0x1405477f8]
mov ecx, dword [rsp + 0x44]
mov edx, ebx
mov r8, rsi
mov r9d, 0xd87fe9fd
call qword [case.0x14013cbc3.0]
mov al, 1
test al, al
jne 0x1402d7e20
mov eax, dword [0x140547794]
add eax, ebp
cdqe
add rax, qword [0x140547848]
mov ecx, 0xe9bb9f93
call qword [case.0x14013cbc3.0]
mov eax, dword [0x140547960]
add eax, 0x54319817
xor eax, r15d
not eax
test eax, r15d
jne 0x1402d7f20
jmp 0x1402d7ef0