Function at 0x3be9792b0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xa8
mov qword [rsp + 0xf8], rdx
mov rdi, rcx
mov r14, r9
cmp rdx, r8
je 0x3be979680
mov qword [rsp + 0x60], 0
xor eax, eax
mov word [rsp + 0x79], ax
mov rax, qword [rsp + 0xf8]
mov qword [rsp + 0x68], 0
mov qword [rsp + 0x70], 0
movzx r15d, byte [rax]
mov r10, rax
mov qword [rsp + 0x80], 0
mov qword [rsp + 0x88], 0
cmp r15b, 0x2d
mov qword [rsp + 0x90], 0
mov qword [rsp + 0x98], 0
sete byte [rsp + 0x78]
je 0x3be9794f8
mov rdx, r8
mov rax, r10
xor ebx, ebx
movabs rbp, 0xcfcfcfcfcfcfcfd0
movabs rsi, 0x4646464646464646
sub rdx, r10
movabs r11, 0x8080808080808080
movabs r9, 0xff000000ff
movabs r13, 0x271000000001
movabs r12, 0xf424000000064
cmp rdx, 7
jg 0x3be9793e2
jmp 0x3be979400
imul rbx, rbx, 0x5f5e100
lea rcx, [rdx + rdx*4]
shr rdx, 8
add rax, 8
lea rcx, [rdx + rcx*2]
mov rdx, rcx
and rcx, r9
shr rdx, 0x10
imul rcx, r12
and rdx, r9
imul rdx, r13
add rdx, rcx
shr rdx, 0x20
add rbx, rdx
mov rdx, r8
sub rdx, rax
cmp rdx, 7
jle 0x3be979423
mov rcx, qword [rax]
lea rdx, [rcx + rbp]
add rcx, rsi
or rcx, rdx
test rcx, r11
je 0x3be9793a0
cmp r8, rax
je 0x3be979428
nop dword [rax]
movsx edx, byte [rax]
mov ecx, edx
sub ecx, 0x30
cmp cl, 9
ja 0x3be979620
sub edx, 0x30
lea rcx, [rbx + rbx*4]
add rax, 1
movsxd rdx, edx
lea rbx, [rdx + rcx*2]
cmp r8, rax
jne 0x3be979400
mov r11, r8
mov qword [rsp + 0x80], r10
sub r11, r10
mov qword [rsp + 0x88], r11
mov rsi, r8
xor r9d, r9d
test r11, r11
je 0x3be979657
test byte [rsp + 0x110], 1
je 0x3be9796b2
cmp r8, rsi
je 0x3be9796a8
movzx edx, byte [rsi]
and edx, 0xffffffdf
cmp dl, 0x45
jne 0x3be9796a8
lea r12, [rsi + 1]
cmp r8, r12
je 0x3be9796a8
movzx edx, byte [rsi + 1]
cmp dl, 0x2d
je 0x3be979f78
xor r13d, r13d
cmp dl, 0x2b
je 0x3be979f94
sub edx, 0x30
cmp dl, 9
ja 0x3be9796a8
xor ebp, ebp
jmp 0x3be9794ce
cmp rbp, 0xfffffff
jg 0x3be9794c5
lea rcx, [rbp + rbp*4]
movzx edx, dl
lea rbp, [rdx + rcx*2]
add r12, 1
cmp r8, r12
je 0x3be9794db
movzx esi, byte [r12]
lea edx, [rsi - 0x30]
cmp dl, 9
jbe 0x3be9794b0
mov rdx, rbp
mov rsi, r12
neg rdx
test r13b, r13b
cmovne rbp, rdx
add r9, rbp
jmp 0x3be9796b4
lea r10, [rax + 1]
cmp r8, r10
je 0x3be979519
movzx eax, byte [rax + 1]
lea edx, [rax - 0x30]
cmp dl, 9
jbe 0x3be97934a
cmp al, 0x2e
je 0x3be97934a
mov rax, qword [rsp + 0xf8]
mov dword [rdi + 8], 0
mov qword [rsp + 0xf8], r10
mov qword [rdi], rax
mov r10d, 1
mov r9, r8
sub r9, qword [rsp + 0xf8]
cmp r9, 2
jle 0x3be979982
mov rax, qword [rsp + 0xf8]
movzx r11d, byte [rax]
movzx ebx, byte [rax + 1]
movzx eax, byte [rax + 2]
mov esi, ebx
mov edx, eax
xor esi, 0x61
xor edx, 0x6e
or edx, esi
mov esi, r11d
xor esi, 0x6e
or edx, esi
and edx, 0xdf
jne 0x3be979968
mov rax, qword [rsp + 0xf8]
movsd xmm0, qword [0x3bea8b7f8]
add rax, 3
mov qword [rdi], rax
test r10b, r10b
je 0x3be9795a6
movsd xmm0, qword [0x3bea8b7f0]
movsd qword [r14], xmm0
cmp r8, rax
je 0x3be97968a
mov rax, qword [rsp + 0xf8]
cmp byte [rax + 3], 0x28
jne 0x3be97968a
lea rcx, [rax + 4]
cmp r8, rcx
je 0x3be97968a
movabs r9, 0x87fffffe03ff
jmp 0x3be97960a
lea edx, [rax - 0x61]
cmp dl, 0x19
jbe 0x3be9795fd
sub eax, 0x30
cmp al, 0x2f
ja 0x3be97968a
bt r9, rax
jae 0x3be97968a
add rcx, 1
cmp r8, rcx
je 0x3be97968a
movzx eax, byte [rcx]
cmp al, 0x29
jne 0x3be9795e0
add rcx, 1
mov qword [rdi], rcx
jmp 0x3be97968a
mov r11, rax
mov qword [rsp + 0x80], r10
sub r11, r10
mov qword [rsp + 0x88], r11
cmp r8, rax
je 0x3be97943e
xor r9d, r9d
cmp byte [rax], 0x2e
mov rsi, rax
je 0x3be979990
test r11, r11
jne 0x3be97944d
mov rax, qword [rsp + 0xf8]
mov dword [rdi + 8], 0
mov qword [rdi], rax
cmp r15b, 0x2d
je 0x3be979d80
xor r10d, r10d
jmp 0x3be979539
mov qword [rdi], rdx
mov dword [rcx + 8], 0x16
mov rax, rdi
add rsp, 0xa8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
test byte [rsp + 0x110], 2
je 0x3be979657
xor ebp, ebp
mov qword [rsp + 0x70], rsi
mov byte [rsp + 0x79], 1
cmp r11, 0x13
jle 0x3be979702
mov rdx, r10
cmp r8, r10
jne 0x3be9796e6
jmp 0x3be97983b
cmp cl, 0x2e
jne 0x3be9796f8
add rdx, 1
cmp r8, rdx
je 0x3be9796f8
movzx ecx, byte [rdx]
cmp cl, 0x30
jne 0x3be9796d8
sub r11, 1
jmp 0x3be9796dd
cmp r11, 0x13
jg 0x3be97983b
lea rax, [r9 + 0x16]
mov qword [rsp + 0x60], r9
mov qword [rsp + 0x68], rbx
cmp rax, 0x2c
ja 0x3be9798b0
movabs rax, 0x20000000000000
cmp rax, rbx
jae 0x3be979ab0
bsr r8, rbx
mov r12, rbx
lea r10d, [r9 + 0x156]
xor r8, 0x3f
lea rbp, [0x3bea8e1e0]
mov ecx, r8d
shl r12, cl
lea ecx, [r10 + r10]
movsxd r11, ecx
mov rax, r12
mul qword [rbp + r11*8]
mov r11, rax
mov rax, rdx
mov r13, rdx
and eax, 0x1ff
cmp rax, 0x1ff
je 0x3be979e11
cmp r11, 0xffffffffffffffff
je 0x3be979bef
imul r12d, r9d, 0x3526a
mov rax, r13
mov rdx, r13
shr rax, 0x3f
lea ecx, [rax + 9]
sar r12d, 0x10
shr rdx, cl
lea eax, [r12 + rax + 0x3f]
sub eax, r8d
lea r8d, [rax + 0x3ff]
test r8d, r8d
jle 0x3be979e53
cmp r11, 1
ja 0x3be9797e3
lea r11, [r9 + 4]
cmp r11, 0x1b
ja 0x3be9797e3
mov r11, rdx
and r11d, 3
cmp r11, 1
jne 0x3be9797e3
mov r11, rdx
shl r11, cl
mov rcx, rdx
and rcx, 0xfffffffffffffffe
cmp r11, r13
cmove rdx, rcx
add rdx, 1
mov r11, rdx
shr r11, 1
shr rdx, 0x36
jne 0x3be979f3f
movzx eax, byte [rsp + 0x7a]
cmp r8d, 0x7fe
jg 0x3be979f29
btr r11, 0x34
test al, al
je 0x3be97a05b
mov rax, rbx
add rax, 1
jne 0x3be979c9a
lea r12d, [r10 + r10]
mov rbx, 0xffffffffffffffff
movsxd rax, r12d
mov r10, qword [rbp + rax*8]
jmp 0x3be979b4d
mov byte [rsp + 0x7a], 1
cmp r10, rax
je 0x3be979ec1
movabs r8, 0xde0b6b3a763ffff
xor ebx, ebx
nop dword [rax]
movsx edx, byte [r10]
lea rcx, [rbx + rbx*4]
add r10, 1
sub edx, 0x30
movsxd rdx, edx
lea rbx, [rdx + rcx*2]
cmp r8, rbx
setae dl
cmp r10, rax
je 0x3be97987d
test dl, dl
jne 0x3be979858
movabs rcx, 0xde0b6b3a763ffff
cmp rcx, rbx
jae 0x3be979ec8
sub rax, r10
mov qword [rsp + 0x68], rbx
lea r9, [rax + rbp]
lea rax, [r9 + 0x16]
mov qword [rsp + 0x60], r9
cmp rax, 0x2c
jbe 0x3be97972d
nop
cmp r9, 0xfffffffffffffeaa
setl al
mov edx, eax
test rbx, rbx
je 0x3be979930
test al, al
jne 0x3be979930
cmp r9, 0x134
jle 0x3be97972d
cmp byte [rsp + 0x7a], 0
je 0x3be979918
cmp rbx, 0xffffffffffffffff
jne 0x3be97a0ae
lea r10d, [r9 + 0x156]
lea rbp, [0x3bea8e1e0]
jmp 0x3be979823
test r11, r11
jne 0x3be979c59
test r8d, r8d
jne 0x3be979c59
nop word [rax + rax]
mov qword [rdi], rsi
mov dword [rdi + 8], 0x22
jmp 0x3be97968a
cmp byte [rsp + 0x7a], 0
jne 0x3be979b10
test rbx, rbx
jne 0x3be979918
mov rax, rbx
bts rbx, 0x3f
cmp r15b, 0x2d
mov qword [rdi], rsi
cmovne rbx, rax
mov dword [rdi + 8], 0
mov qword [r14], rbx
jmp 0x3be97968a
xor eax, 0x66
xor ebx, 0x6e
xor r11d, 0x69
or eax, ebx
or eax, r11d
and eax, 0xdf
je 0x3be979d8e
mov dword [rdi + 8], 0x16
jmp 0x3be97968a
lea rdx, [rax + 1]
mov r9, r8
sub r9, rdx
mov rsi, rdx
cmp r9, 7
jle 0x3be979a82
movabs r12, 0xcfcfcfcfcfcfcfd0
mov byte [rsp + 0x28], r15b
movabs rbp, 0x4646464646464646
movabs r9, 0xff000000ff
movabs rcx, 0x271000000001
mov qword [rsp + 0x30], r10
movabs r13, 0xf424000000064
mov qword [rsp + 0x38], rax
jmp 0x3be979a32
imul rbx, rbx, 0x5f5e100
lea r15, [r10 + r10*4]
shr r10, 8
add rsi, 8
lea r15, [r10 + r15*2]
mov r10, r15
and r15, r9
shr r10, 0x10
imul r15, r13
and r10, r9
imul r10, rcx
add r10, r15
shr r10, 0x20
add rbx, r10
mov r10, r8
sub r10, rsi
cmp r10, 7
jle 0x3be979a4e
movabs rax, 0x8080808080808080
mov r15, qword [rsi]
lea r10, [r15 + r12]
add r15, rbp
or r15, r10
test r15, rax
je 0x3be9799f0
movzx r15d, byte [rsp + 0x28]
mov r10, qword [rsp + 0x30]
mov rax, qword [rsp + 0x38]
cmp r8, rsi
je 0x3be979a87
nop dword [rax + rax]
movzx ecx, byte [rsi]
sub ecx, 0x30
cmp cl, 9
ja 0x3be979a87
lea r9, [rbx + rbx*4]
movzx ecx, cl
add rsi, 1
lea rbx, [rcx + r9*2]
cmp r8, rsi
jne 0x3be979a68
mov r9, rdx
mov rbp, rsi
mov qword [rsp + 0x90], rdx
sub r9, rsi
sub rbp, rdx
mov qword [rsp + 0x98], rbp
sub r11, r9
jmp 0x3be97964e
cmp byte [rsp + 0x7a], 0
jne 0x3be979c78
pxor xmm0, xmm0
cvtsi2sd xmm0, rbx
test r9, r9
js 0x3be979dfc
lea rax, [0x3bea90ae0]
mulsd xmm0, qword [rax + r9*8]
cmp r15b, 0x2d
jne 0x3be979ae8
xorpd xmm0, xmmword [0x3bea8b810]
mov qword [rdi], rsi
mov dword [rdi + 8], 0
movsd qword [r14], xmm0
jmp 0x3be97968a
test r12b, r12b
je 0x3be979918
xor edx, edx
nop word [rax + rax]
lea rax, [rbx + 1]
cmp rbx, 0xffffffffffffffff
je 0x3be979f64
test dl, dl
jne 0x3be979f64
cmp r9, 0x134
jle 0x3be97a095
lea r10d, [r9 + 0x156]
lea rbp, [0x3bea8e1e0]
lea r12d, [r10 + r10]
movsxd rax, r12d
mov r10, qword [rbp + rax*8]
bsr r8, rbx
mov rax, rbx
xor r8, 0x3f
mov ecx, r8d
shl rax, cl
mov rcx, rax
mov rax, r10
mul rcx
mov r10, rax
mov rax, rdx
mov r13, rdx
and eax, 0x1ff
cmp rax, 0x1ff
jne 0x3be979b97
lea eax, [r12 + 1]
movsxd r12, eax
mov rax, rcx
mul qword [rbp + r12*8]
mov rax, rdx
add rax, r10
adc r13, 0
imul eax, r9d, 0x3526a
mov rcx, r13
shr rcx, 0x3f
xor ecx, 1
sar eax, 0x10
shl r13, cl
add eax, 0x472
sub eax, ecx
sub eax, r8d
sub eax, 0x803e
js 0x3be979c26
test rbx, rbx
je 0x3be979be0
test r13, r13
jne 0x3be979be0
test eax, eax
je 0x3be979918
mov rbx, rax
shl rbx, 0x34
jmp 0x3be979940
shl rax, 0x34
or rax, r13
mov rbx, rax
jmp 0x3be979940
imul eax, r9d, 0x3526a
mov r11, r13
lea rdx, [r9 + 0x1b]
shr r11, 0x3f
sar eax, 0x10
cmp rdx, 0x52
jbe 0x3be979e31
mov ecx, r11d
add eax, 0x472
xor ecx, 1
sub eax, ecx
shl r13, cl
sub eax, r8d
sub eax, 0x803e
mov eax, eax
lea r8, [rsp + 0x40]
lea rcx, [rsp + 0x50]
mov qword [rsp + 0x40], r13
lea rdx, [rsp + 0x60]
mov qword [rsp + 0x48], rax
call fcn.3be976f80
mov r11, qword [rsp + 0x50]
mov r8d, dword [rsp + 0x58]
test rbx, rbx
jne 0x3be979900
cmp r8d, 0x7ff
je 0x3be979918
shl r8, 0x34
mov rbx, r8
or rbx, r11
jmp 0x3be979940
test rbx, rbx
jne 0x3be97972d
xor r11d, r11d
mov eax, 1
xor r8d, r8d
lea r10d, [r9 + 0x156]
lea rbp, [0x3bea8e1e0]
bsr rdx, rax
lea r12d, [r10 + r10]
xor rdx, 0x3f
mov ecx, edx
mov qword [rsp + 0x30], rdx
shl rax, cl
mov rcx, rax
movsxd rax, r12d
mov r10, qword [rbp + rax*8]
mov rax, rcx
mul r10
mov qword [rsp + 0x28], rax
mov rax, rdx
mov r13, rdx
and eax, 0x1ff
cmp rax, 0x1ff
je 0x3be97a00a
cmp qword [rsp + 0x28], 0xffffffffffffffff
je 0x3be979fc9
imul r10d, r9d, 0x3526a
mov rax, r13
mov rdx, r13
shr rax, 0x3f
lea ecx, [rax + 9]
sar r10d, 0x10
shr rdx, cl
lea r10d, [r10 + rax + 0x3f]
mov eax, dword [rsp + 0x30]
sub r10d, eax
lea eax, [r10 + 0x3ff]
test eax, eax
jle 0x3be979f9a
cmp qword [rsp + 0x28], 1
ja 0x3be979d41
lea rbp, [r9 + 4]
cmp rbp, 0x1b
ja 0x3be979d41
mov rbp, rdx
and ebp, 3
cmp rbp, 1
je 0x3be97a07d
lea rcx, [rdx + 1]
mov rdx, rcx
shr rdx, 1
shr rcx, 0x36
jne 0x3be97a04d
btr rdx, 0x34
cmp eax, 0x7fe
jle 0x3be979d68
mov eax, 0x7ff
xor edx, edx
cmp eax, r8d
jne 0x3be979b33
cmp rdx, r11
jne 0x3be979b33
jmp 0x3be979c50
add qword [rsp + 0xf8], 1
jmp 0x3be979533
cmp r9, 7
jle 0x3be979eb0
mov r8, qword [rsp + 0xf8]
xor edx, edx
lea r9, [0x3bea8b7e0]
nop dword [rax]
movzx ecx, byte [r8 + rdx + 3]
xor cl, byte [r9 + rdx]
add rdx, 1
or eax, ecx
cmp rdx, 5
jne 0x3be979db0
test al, 0xdf
jne 0x3be979eb0
mov rax, qword [rsp + 0xf8]
lea rcx, [rax + 8]
mov qword [rdi], rcx
movsd xmm0, qword [0x3bea8b808]
test r10b, r10b
je 0x3be979df2
movsd xmm0, qword [0x3bea8b800]
movsd qword [r14], xmm0
jmp 0x3be97968a
neg r9
lea rax, [0x3bea90ae0]
divsd xmm0, qword [rax + r9*8]
jmp 0x3be979ada
lea eax, [rcx + 1]
movsxd rcx, eax
mov rax, r12
mul qword [rbp + rcx*8]
add r11, rdx
jae 0x3be979775
add r13, 1
jmp 0x3be97977f
lea eax, [rax + r11 + 0x3f]
lea ecx, [r11 + 9]
mov rdx, r13
sub eax, r8d
shr rdx, cl
lea r8d, [rax + 0x3ff]
test r8d, r8d
jg 0x3be9797e3
mov ecx, 1
movzx r12d, byte [rsp + 0x7a]
sub ecx, r8d
cmp ecx, 0x3f
jg 0x3be979afc
shr rdx, cl
xor r8d, r8d
lea rax, [rdx + 1]
mov r11, rax
shr r11, 1
shr rax, 0x35
setne r8b
test r12b, r12b
je 0x3be97a03f
mov rax, rbx
add rax, 1
jne 0x3be979c9a
or rbx, 0xffffffffffffffff
test r11, r11
jne 0x3be979b41
jmp 0x3be979918
mov rax, qword [rsp + 0xf8]
lea rcx, [rax + 3]
jmp 0x3be979dda
mov edx, 1
xor ebx, ebx
mov r9, qword [rsp + 0x90]
mov r8, qword [rsp + 0x98]
add r8, r9
cmp r9, r8
je 0x3be97a075
test dl, dl
je 0x3be97a075
movabs r10, 0xde0b6b3a763ffff
mov rdx, r9
jmp 0x3be979f05
cmp r8, rdx
je 0x3be979f1e
movsx eax, byte [rdx]
lea rcx, [rbx + rbx*4]
add rdx, 1
sub eax, 0x30
cdqe
lea rbx, [rax + rcx*2]
cmp r10, rbx
jae 0x3be979f00
sub r9, rdx
add r9, rbp
jmp 0x3be979702
test al, al
je 0x3be979918
xor r11d, r11d
mov r8d, 0x7ff
jmp 0x3be979816
lea r8d, [rax + 0x400]
movzx eax, byte [rsp + 0x7a]
cmp r8d, 0x7fe
jg 0x3be979f29
test al, al
je 0x3be97a064
xor r11d, r11d
jmp 0x3be979816
test rbx, rbx
jne 0x3be979918
xor r11d, r11d
xor r8d, r8d
jmp 0x3be979c66
lea r12, [rsi + 2]
mov r13d, 1
cmp r8, r12
je 0x3be9796a8
movzx edx, byte [rsi + 2]
jmp 0x3be979499
lea r12, [rsi + 2]
jmp 0x3be979f82
mov ecx, 1
sub ecx, eax
cmp ecx, 0x3f
jg 0x3be97a06c
mov rax, rdx
shr rax, cl
add rax, 1
mov rdx, rax
shr rdx, 1
shr rax, 0x35
setne al
movzx eax, al
jmp 0x3be979d68
lea rax, [r9 + 0x1b]
cmp rax, 0x52
ja 0x3be979b4d
imul eax, r9d, 0x3526a
mov r10, r13
mov rdx, r13
shr r10, 0x3f
lea ecx, [r10 + 9]
sar eax, 0x10
shr rdx, cl
lea r10d, [rax + r10 + 0x3f]
mov eax, dword [rsp + 0x30]
sub r10d, eax
lea eax, [r10 + 0x3ff]
jmp 0x3be979d41
lea eax, [r12 + 1]
cdqe
mov qword [rsp + 0x38], rax
mov rax, rcx
mov rcx, qword [rsp + 0x38]
mul qword [rbp + rcx*8]
mov rcx, qword [rsp + 0x28]
add rcx, rdx
mov qword [rsp + 0x28], rcx
jae 0x3be979cdd
add r13, 1
jmp 0x3be979ce9
test r11, r11
jne 0x3be979c66
jmp 0x3be979918
lea eax, [r10 + 0x400]
xor edx, edx
jmp 0x3be979d5a
test r11, r11
jne 0x3be979c66
xor r11d, r11d
jmp 0x3be979c66
xor eax, eax
xor edx, edx
jmp 0x3be979d68
mov r9, rbp
jmp 0x3be979702
mov rbp, rdx
shl rbp, cl
cmp rbp, r13
jne 0x3be979d41
and rdx, 0xfffffffffffffffe
jmp 0x3be979d41
xor r11d, r11d
xor r8d, r8d
lea r10d, [r9 + 0x156]
lea rbp, [0x3bea8e1e0]
jmp 0x3be979c9a
xor r11d, r11d
mov r8d, 0x7ff
jmp 0x3be979d61