Function at 0x1200f8fe0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x98
lea rax, [rcx + 0x10]
mov byte [rcx + 0x10], 0
mov r13, rcx
mov rbx, rdx
mov qword [rcx], rax
mov qword [rcx + 8], 0
movzx eax, byte [rdx + 9]
cmp al, 0x73
je 0x1200f9170
cmp al, 0x64
je 0x1200f9090
cmp al, 0x69
je 0x1200f9090
cmp al, 0x75
je 0x1200f9460
cmp al, 0x78
je 0x1200f95e0
cmp al, 0x58
je 0x1200f9670
cmp al, 0x70
je 0x1200f96a8
cmp al, 0x63
jne 0x1200f9158
mov eax, dword [r8]
lea r12, [rsp + 0x70]
lea rdx, [rsp + 0x50]
lea r8, [rsp + 0x51]
mov rcx, r12
mov byte [rsp + 0x50], al
lea rax, [rsp + 0x80]
mov qword [rsp + 0x70], rax
call fcn.1201503f0
mov rcx, r13
mov rdx, r12
call fcn.120152450
mov rcx, r12
call fcn.120001d48
jmp 0x1200f9158
mov eax, dword [r8]
movzx r9d, byte [rbx + 8]
mov esi, 0x2d
test eax, eax
js 0x1200f90b0
mov esi, 0x2b
test r9b, 0x10
je 0x1200f93b0
lea r8, [rsp + 0x41]
mov r12, r8
nop dword [rax + rax]
movsxd rdx, eax
mov r10d, eax
mov rcx, r12
sub r12, 1
imul rdx, rdx, 0x66666667
sar r10d, 0x1f
sar rdx, 0x22
sub edx, r10d
lea r10d, [rdx + rdx*4]
add r10d, r10d
sub eax, r10d
mov r10d, eax
sar r10d, 0x1f
xor eax, r10d
sub eax, r10d
add eax, 0x30
mov byte [r12], al
mov eax, edx
test edx, edx
jne 0x1200f90c0
test r9b, 4
jne 0x1200f92d0
test sil, sil
je 0x1200f911b
mov byte [r12 - 1], sil
lea r12, [rcx - 2]
lea r14, [rsp + 0x50]
lea rbx, [rsp + 0x60]
mov rdx, r12
mov rcx, r14
mov qword [rsp + 0x50], rbx
call fcn.120151680
mov rcx, r13
mov rdx, r14
call fcn.120152450
mov rcx, qword [rsp + 0x50]
cmp rcx, rbx
je 0x1200f9158
mov rax, qword [rsp + 0x60]
lea rdx, [rax + 1]
call sub.libstdc_6.dll_operator_delete_void__unsigned_long_long_
mov rax, r13
add rsp, 0x98
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov eax, dword [r8]
cdq
mov ecx, eax
mov esi, edx
shr ecx, 0x1f
xor esi, eax
mov r8d, ecx
movzx r15d, cl
sub esi, edx
cmp esi, 9
jbe 0x1200f9771
cmp esi, 0x63
jbe 0x1200f97a1
cmp esi, 0x3e7
jbe 0x1200f9986
cmp esi, 0x270f
jbe 0x1200f9996
mov eax, esi
mov ebp, 1
mov ecx, 0xd1b71759
jmp 0x1200f91e4
cmp edx, 0xf423f
jbe 0x1200f97f8
cmp edx, 0x98967f
jbe 0x1200f9830
cmp edx, 0x5f5e0ff
jbe 0x1200f9840
mov eax, eax
mov r12d, ebp
add ebp, 4
mov rdx, rax
imul rax, rcx
shr rax, 0x2d
cmp edx, 0x1869f
ja 0x1200f91c0
add r12d, 3
lea r14, [rsp + 0x70]
lea edx, [rbp + r8]
mov r8d, 0x2d
mov rcx, r14
lea rdi, [rsp + 0x80]
mov qword [rsp + 0x70], rdi
call fcn.120001d38
mov rcx, qword [rsp + 0x70]
add rcx, r15
lea r8, [0x1205e1880]
nop word [rax + rax]
mov edx, esi
mov eax, esi
imul rdx, rdx, 0x51eb851f
shr rdx, 0x25
imul r9d, edx, 0x64
sub eax, r9d
mov r9d, esi
mov esi, edx
mov edx, r12d
add eax, eax
lea r10d, [rax + 1]
movzx eax, byte [r8 + rax]
movzx r10d, byte [r8 + r10]
mov byte [rcx + rdx], r10b
lea edx, [r12 - 1]
sub r12d, 2
mov byte [rcx + rdx], al
cmp r9d, 0x270f
ja 0x1200f9240
cmp r9d, 0x3e7
ja 0x1200f97d8
add esi, 0x30
mov byte [rcx], sil
mov rcx, r13
mov rdx, r14
call fcn.120152450
mov rcx, qword [rsp + 0x70]
cmp rcx, rdi
je 0x1200f963f
mov rax, qword [rsp + 0x80]
lea rdx, [rax + 1]
call sub.libstdc_6.dll_operator_delete_void__unsigned_long_long_
jmp 0x1200f963f
mov eax, r9d
sub r8, r12
mov r15, qword [rbx]
and eax, 1
mov rbp, r8
test sil, sil
je 0x1200f93c8
test r15, r15
je 0x1200f93c8
lea rdi, [rsp + 0x80]
mov byte [rsp + 0x80], 0
sub r15, 1
lea r14, [rsp + 0x70]
mov qword [rsp + 0x70], rdi
mov qword [rsp + 0x78], 0
test al, al
jne 0x1200f9738
cmp r15, r8
jbe 0x1200f9710
and r9d, 8
jne 0x1200f9710
lea r14, [rsp + 0x70]
mov dword [rsp + 0x20], 0x20
mov r9, r15
xor r8d, r8d
xor edx, edx
sub r9, rbp
mov rcx, r14
call fcn.120001d28
test sil, sil
jne 0x1200f9715
mov qword [rsp + 0x20], rbp
mov rdx, qword [rsp + 0x78]
xor r8d, r8d
mov r9, r12
mov rcx, r14
call fcn.120001d40
cmp r15, rbp
jbe 0x1200f93a1
mov rdx, qword [rsp + 0x78]
test byte [rbx + 8], 8
je 0x1200f941f
mov dword [rsp + 0x20], 0x20
sub r15, rbp
xor r8d, r8d
mov rcx, r14
mov r9, r15
call fcn.120001d28
mov rdx, qword [rsp + 0x78]
jmp 0x1200f941f
mov esi, r9d
mov edx, 0x20
and esi, 2
cmovne esi, edx
jmp 0x1200f90b0
lea rdi, [rsp + 0x80]
mov byte [rsp + 0x80], 0
lea r14, [rsp + 0x70]
mov qword [rsp + 0x70], rdi
mov qword [rsp + 0x78], 0
test al, al
je 0x1200f984e
test sil, sil
jne 0x1200f9738
xor edx, edx
cmp r15, rbp
ja 0x1200f974e
mov qword [rsp + 0x20], rbp
mov r9, r12
xor r8d, r8d
mov rcx, r14
call fcn.120001d40
mov rdx, qword [rsp + 0x78]
mov rax, qword [rsp + 0x70]
lea rbx, [rsp + 0x60]
mov qword [rsp + 0x50], rbx
cmp rax, rdi
je 0x1200f9658
mov qword [rsp + 0x50], rax
mov rax, qword [rsp + 0x80]
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x58], rdx
lea r14, [rsp + 0x50]
jmp 0x1200f9135
mov eax, dword [r8]
movzx ecx, byte [rdx + 8]
mov esi, 0x2d
test eax, eax
js 0x1200f947e
mov esi, 0x2b
test cl, 0x10
je 0x1200f9726
lea r8, [rsp + 0x41]
mov r12, r8
nop word cs:[rax + rax]
movsxd rdx, eax
mov r10d, eax
mov r9, r12
sub r12, 1
imul rdx, rdx, 0x66666667
sar r10d, 0x1f
sar rdx, 0x22
sub edx, r10d
lea r10d, [rdx + rdx*4]
add r10d, r10d
sub eax, r10d
mov r10d, eax
sar r10d, 0x1f
xor eax, r10d
sub eax, r10d
add eax, 0x30
mov byte [r12], al
mov eax, edx
test edx, edx
jne 0x1200f9490
test cl, 4
je 0x1200f96d0
mov eax, ecx
mov r15, r8
mov rbp, qword [rbx]
and eax, 1
sub r15, r12
test sil, sil
je 0x1200f9868
test rbp, rbp
je 0x1200f9868
lea rdi, [rsp + 0x80]
mov byte [rsp + 0x80], 0
sub rbp, 1
lea r14, [rsp + 0x70]
mov qword [rsp + 0x70], rdi
mov qword [rsp + 0x78], 0
test al, al
jne 0x1200f9922
cmp rbp, r15
jbe 0x1200f9970
and ecx, 8
jne 0x1200f9970
lea r14, [rsp + 0x70]
mov dword [rsp + 0x20], 0x20
mov r9, rbp
xor r8d, r8d
xor edx, edx
sub r9, r15
mov rcx, r14
call fcn.120001d28
test sil, sil
jne 0x1200f9975
mov qword [rsp + 0x20], r15
mov rdx, qword [rsp + 0x78]
xor r8d, r8d
mov r9, r12
mov rcx, r14
call fcn.120001d40
cmp rbp, r15
jbe 0x1200f9905
mov rdx, qword [rsp + 0x78]
test byte [rbx + 8], 8
jne 0x1200f99a6
nop word cs:[rax + rax]
lea rax, [rsp + 0x60]
mov qword [rsp + 0x50], rax
mov rax, qword [rsp + 0x70]
cmp rax, rdi
je 0x1200f990f
mov qword [rsp + 0x50], rax
mov rax, qword [rsp + 0x80]
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x58], rdx
lea r14, [rsp + 0x50]
jmp 0x1200f96f8
mov eax, dword [r8]
lea r8, [rsp + 0x58]
mov r9, r8
nop dword [rax + rax]
mov ecx, eax
and ecx, 0xf
cmp ecx, 0xa
lea r10d, [rcx + 0x57]
lea edx, [rcx + 0x30]
cmovge edx, r10d
sub r9, 1
shr eax, 4
mov byte [r9], dl
jne 0x1200f95f0
lea r12, [rsp + 0x70]
lea rax, [rsp + 0x80]
mov rdx, r9
mov rcx, r12
mov qword [rsp + 0x70], rax
call fcn.120151680
mov rcx, r13
mov rdx, r12
call fcn.120152450
mov rcx, r12
call fcn.120001d48
movzx r8d, byte [rbx + 8]
mov rdx, qword [rbx]
mov rcx, r13
call fcn.120110c90
jmp 0x1200f9158
movdqu xmm0, xmmword [rsp + 0x80]
movups xmmword [rsp + 0x60], xmm0
jmp 0x1200f9449
mov eax, dword [r8]
lea r8, [rsp + 0x58]
mov r9, r8
nop dword [rax + rax]
mov ecx, eax
and ecx, 0xf
cmp ecx, 0xa
lea r10d, [rcx + 0x37]
lea edx, [rcx + 0x30]
cmovge edx, r10d
sub r9, 1
shr eax, 4
mov byte [r9], dl
jne 0x1200f9680
jmp 0x1200f960f
lea rax, [rsp + 0x80]
mov byte [rsp + 0x80], 0
lea r12, [rsp + 0x70]
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x78], 0
jmp 0x1200f962c
test sil, sil
je 0x1200f96de
mov byte [r12 - 1], sil
lea r12, [r9 - 2]
lea r14, [rsp + 0x50]
lea rax, [rsp + 0x60]
mov rdx, r12
mov rcx, r14
mov qword [rsp + 0x50], rax
call fcn.120151680
mov rcx, r13
mov rdx, r14
call fcn.120152450
mov rcx, r14
call fcn.120001d48
jmp 0x1200f9158
lea r14, [rsp + 0x70]
movsx edx, sil
mov rcx, r14
call fcn.120001ce0
jmp 0x1200f935c
mov esi, ecx
mov edx, 0x20
and esi, 2
cmovne esi, edx
jmp 0x1200f947e
movsx edx, sil
mov rcx, r14
call fcn.120001ce0
cmp r15, rbp
jbe 0x1200f9767
mov rdx, qword [rsp + 0x78]
mov dword [rsp + 0x20], 0x30
sub r15, rbp
xor r8d, r8d
mov rcx, r14
mov r9, r15
call fcn.120001d28
mov rdx, qword [rsp + 0x78]
jmp 0x1200f9407
lea r14, [rsp + 0x70]
lea edx, [rcx + 1]
mov r8d, 0x2d
mov rcx, r14
lea rdi, [rsp + 0x80]
mov qword [rsp + 0x70], rdi
call fcn.120001d38
mov rcx, qword [rsp + 0x70]
add rcx, r15
jmp 0x1200f9294
lea r14, [rsp + 0x70]
lea edx, [rcx + 2]
mov r8d, 0x2d
mov rcx, r14
lea rdi, [rsp + 0x80]
mov qword [rsp + 0x70], rdi
call fcn.120001d38
mov rcx, qword [rsp + 0x70]
lea r8, [0x1205e1880]
add rcx, r15
nop dword [rax + rax]
add esi, esi
lea eax, [rsi + 1]
movzx eax, byte [r8 + rax]
mov byte [rcx + 1], al
movzx eax, byte [r8 + rsi]
mov byte [rcx], al
jmp 0x1200f929a
lea r14, [rsp + 0x70]
lea edx, [r12 + r8 + 5]
mov r8d, 0x2d
mov r12d, ebp
mov rcx, r14
lea rdi, [rsp + 0x80]
mov qword [rsp + 0x70], rdi
call fcn.120001d38
mov rcx, qword [rsp + 0x70]
add rcx, r15
jmp 0x1200f9230
lea ebp, [r12 + 6]
add r12d, 5
jmp 0x1200f9203
lea ebp, [r12 + 7]
add r12d, 6
jmp 0x1200f9203
cmp r15, rbp
jbe 0x1200f98c4
and r9d, 8
jne 0x1200f9353
jmp 0x1200f9338
lea rdi, [rsp + 0x80]
mov byte [rsp + 0x80], 0
lea r14, [rsp + 0x70]
mov qword [rsp + 0x70], rdi
mov qword [rsp + 0x78], 0
test al, al
je 0x1200f995b
test sil, sil
jne 0x1200f9922
xor edx, edx
cmp rbp, r15
ja 0x1200f9938
mov qword [rsp + 0x20], r15
mov r9, r12
xor r8d, r8d
mov rcx, r14
call fcn.120001d40
mov rdx, qword [rsp + 0x78]
jmp 0x1200f95a0
test sil, sil
jne 0x1200f9715
mov qword [rsp + 0x20], rbp
mov r9, r12
xor r8d, r8d
xor edx, edx
mov rcx, r14
call fcn.120001d40
jmp 0x1200f93a1
test sil, sil
jne 0x1200f9975
mov qword [rsp + 0x20], r15
mov r9, r12
xor r8d, r8d
xor edx, edx
mov rcx, r14
call fcn.120001d40
mov rdx, qword [rsp + 0x78]
jmp 0x1200f95a0
movdqu xmm1, xmmword [rsp + 0x80]
movups xmmword [rsp + 0x60], xmm1
jmp 0x1200f95ca
movsx edx, sil
mov rcx, r14
call fcn.120001ce0
cmp rbp, r15
jbe 0x1200f9951
mov rdx, qword [rsp + 0x78]
mov dword [rsp + 0x20], 0x30
mov r9, rbp
xor r8d, r8d
mov rcx, r14
sub r9, r15
call fcn.120001d28
mov rdx, qword [rsp + 0x78]
jmp 0x1200f98a7
cmp rbp, r15
jbe 0x1200f98e7
and ecx, 8
jne 0x1200f955d
jmp 0x1200f9542
lea r14, [rsp + 0x70]
movsx edx, sil
mov rcx, r14
call fcn.120001ce0
jmp 0x1200f9566
mov r12d, 2
mov ebp, 3
jmp 0x1200f9203
mov r12d, 3
mov ebp, 4
jmp 0x1200f9203
mov dword [rsp + 0x20], 0x20
mov r9, rbp
xor r8d, r8d
mov rcx, r14
sub r9, r15
call fcn.120001d28
jmp 0x1200f9905