Function at 0x1200fa5f0
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
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 0x1200fa790
cmp al, 0x64
je 0x1200fa6a0
cmp al, 0x69
je 0x1200fa6a0
cmp al, 0x75
je 0x1200faa90
cmp al, 0x78
je 0x1200fac10
cmp al, 0x58
je 0x1200faca0
cmp al, 0x70
je 0x1200facd8
cmp al, 0x63
jne 0x1200fa772
mov rax, qword [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 0x1200fa772
mov rcx, qword [r8]
movzx r11d, byte [rbx + 8]
mov esi, 0x2d
test rcx, rcx
js 0x1200fa6c1
mov esi, 0x2b
test r11b, 0x10
je 0x1200fa9f0
lea r8, [rsp + 0x91]
movabs r9, 0x6666666666666667
mov r12, r8
nop word cs:[rax + rax]
mov rax, rcx
mov r10, r12
sub r12, 1
imul r9
mov rax, rcx
sar rax, 0x3f
sar rdx, 2
sub rdx, rax
lea rax, [rdx + rdx*4]
add rax, rax
sub rcx, rax
mov eax, ecx
sar eax, 0x1f
xor ecx, eax
sub ecx, eax
add ecx, 0x30
mov byte [r12], cl
mov rcx, rdx
test rdx, rdx
jne 0x1200fa6e0
test r11b, 4
jne 0x1200fa918
test sil, sil
je 0x1200fa735
mov byte [r12 - 1], sil
lea r12, [r10 - 2]
lea r14, [rsp + 0x30]
lea rbx, [rsp + 0x40]
mov rdx, r12
mov rcx, r14
mov qword [rsp + 0x30], rbx
call fcn.120151680
mov rcx, r13
mov rdx, r14
call fcn.120152450
mov rcx, qword [rsp + 0x30]
cmp rcx, rbx
je 0x1200fa772
mov rax, qword [rsp + 0x40]
lea rdx, [rax + 1]
call sub.libstdc_6.dll_operator_delete_void__unsigned_long_long_
mov rax, r13
add rsp, 0xa8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rsi, qword [r8]
mov rax, rsi
mov rcx, rsi
sar rax, 0x3f
shr rcx, 0x3f
xor rsi, rax
movzx r8d, cl
movzx r15d, cl
sub rsi, rax
cmp rsi, 9
jbe 0x1200fada2
cmp rsi, 0x63
jbe 0x1200fadd3
cmp rsi, 0x3e7
jbe 0x1200fafa6
cmp rsi, 0x270f
jbe 0x1200fafb5
mov rdx, rsi
mov ebp, 1
movabs r9, 0x346dc5d63886594b
jmp 0x1200fa81f
cmp rcx, 0xf423f
jbe 0x1200fae28
cmp rcx, 0x98967f
jbe 0x1200fae60
cmp rcx, 0x5f5e0ff
jbe 0x1200fae70
mov rax, rdx
mov rcx, rdx
mov edi, ebp
add ebp, 4
mul r9
shr rdx, 0xb
cmp rcx, 0x1869f
ja 0x1200fa7f8
add edi, 3
lea r14, [rsp + 0x70]
lea edx, [rbp + r8]
mov r8d, 0x2d
mov rcx, r14
lea r12, [rsp + 0x80]
mov qword [rsp + 0x70], r12
call fcn.120001d38
mov rcx, qword [rsp + 0x70]
add rcx, r15
lea r8, str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
movabs r9, 0x28f5c28f5c28f5c3
nop dword [rax + rax]
mov rdx, rsi
shr rdx, 2
mov rax, rdx
mul r9
mov r10, rdx
and rdx, 0xfffffffffffffffc
shr r10, 2
add rdx, r10
lea rax, [rdx + rdx*4]
mov rdx, rsi
shl rax, 2
sub rdx, rax
mov rax, rsi
mov rsi, r10
mov r10d, edi
movzx r11d, byte [r8 + rdx*2 + 1]
movzx edx, byte [r8 + rdx*2]
mov byte [rcx + r10], r11b
lea r10d, [rdi - 1]
sub edi, 2
mov byte [rcx + r10], dl
cmp rax, 0x270f
ja 0x1200fa880
cmp rax, 0x3e7
ja 0x1200fae10
add esi, 0x30
mov byte [rcx], sil
mov rcx, r13
mov rdx, r14
call fcn.120152450
mov rcx, qword [rsp + 0x70]
cmp rcx, r12
je 0x1200fac73
mov rax, qword [rsp + 0x80]
lea rdx, [rax + 1]
call sub.libstdc_6.dll_operator_delete_void__unsigned_long_long_
jmp 0x1200fac73
mov eax, r11d
mov r15, r8
mov rbp, qword [rbx]
and eax, 1
sub r15, r12
test sil, sil
je 0x1200faa08
test rbp, rbp
je 0x1200faa08
lea rdi, [rsp + 0x60]
mov byte [rsp + 0x60], 0
sub rbp, 1
lea r14, [rsp + 0x50]
mov qword [rsp + 0x50], rdi
mov qword [rsp + 0x58], 0
test al, al
jne 0x1200fad69
cmp rbp, r15
jbe 0x1200fad40
and r11d, 8
jne 0x1200fad40
lea r14, [rsp + 0x50]
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 0x1200fad45
mov qword [rsp + 0x20], r15
mov rdx, qword [rsp + 0x58]
xor r8d, r8d
mov r9, r12
mov rcx, r14
call fcn.120001d40
cmp rbp, r15
jbe 0x1200fa9e3
mov rdx, qword [rsp + 0x58]
test byte [rbx + 8], 8
je 0x1200faa59
mov dword [rsp + 0x20], 0x20
mov r9, rbp
xor r8d, r8d
mov rcx, r14
sub r9, r15
call fcn.120001d28
mov rdx, qword [rsp + 0x58]
jmp 0x1200faa59
mov esi, r11d
mov eax, 0x20
and esi, 2
cmovne esi, eax
jmp 0x1200fa6c1
lea rdi, [rsp + 0x60]
mov byte [rsp + 0x60], 0
lea r14, [rsp + 0x50]
mov qword [rsp + 0x50], rdi
mov qword [rsp + 0x58], 0
test al, al
je 0x1200fae7b
test sil, sil
jne 0x1200fad69
xor edx, edx
cmp rbp, r15
ja 0x1200fad7f
mov qword [rsp + 0x20], r15
mov r9, r12
xor r8d, r8d
mov rcx, r14
call fcn.120001d40
mov rdx, qword [rsp + 0x58]
mov rax, qword [rsp + 0x50]
lea rbx, [rsp + 0x40]
mov qword [rsp + 0x30], rbx
cmp rax, rdi
je 0x1200fac90
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x60]
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x38], rdx
lea r14, [rsp + 0x30]
jmp 0x1200fa74f
mov rcx, qword [r8]
movzx r11d, byte [rdx + 8]
mov esi, 0x2d
test rcx, rcx
js 0x1200faab1
mov esi, 0x2b
test r11b, 0x10
je 0x1200fad56
lea r8, [rsp + 0x91]
movabs r9, 0x6666666666666667
mov r12, r8
nop word cs:[rax + rax]
mov rax, rcx
mov r10, r12
sub r12, 1
imul r9
mov rax, rcx
sar rax, 0x3f
sar rdx, 2
sub rdx, rax
lea rax, [rdx + rdx*4]
add rax, rax
sub rcx, rax
mov eax, ecx
sar eax, 0x1f
xor ecx, eax
sub ecx, eax
add ecx, 0x30
mov byte [r12], cl
mov rcx, rdx
test rdx, rdx
jne 0x1200faad0
test r11b, 4
je 0x1200fad00
mov eax, r11d
mov r15, r8
mov rbp, qword [rbx]
and eax, 1
sub r15, r12
test sil, sil
je 0x1200fae90
test rbp, rbp
je 0x1200fae90
lea rdi, [rsp + 0x60]
mov byte [rsp + 0x60], 0
sub rbp, 1
lea r14, [rsp + 0x50]
mov qword [rsp + 0x50], rdi
mov qword [rsp + 0x58], 0
test al, al
jne 0x1200faf41
cmp rbp, r15
jbe 0x1200faf90
and r11d, 8
jne 0x1200faf90
lea r14, [rsp + 0x50]
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 0x1200faf95
mov qword [rsp + 0x20], r15
mov rdx, qword [rsp + 0x58]
xor r8d, r8d
mov r9, r12
mov rcx, r14
call fcn.120001d40
cmp rbp, r15
jbe 0x1200faf27
mov rdx, qword [rsp + 0x58]
test byte [rbx + 8], 8
jne 0x1200fafc4
nop dword [rax]
lea rax, [rsp + 0x40]
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x50]
cmp rax, rdi
je 0x1200faf31
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x60]
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x38], rdx
lea r14, [rsp + 0x30]
jmp 0x1200fad28
lea rdi, [rsp + 0x60]
mov rax, qword [r8]
mov r9, rdi
nop dword [rax + rax]
mov ecx, eax
and ecx, 0xf
cmp ecx, 0xa
lea r8d, [rcx + 0x57]
lea edx, [rcx + 0x30]
cmovge edx, r8d
sub r9, 1
shr rax, 4
mov byte [r9], dl
jne 0x1200fac20
lea r12, [rsp + 0x70]
lea rax, [rsp + 0x80]
mov r8, rdi
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 0x1200fa772
movdqu xmm0, xmmword [rsp + 0x60]
movups xmmword [rsp + 0x40], xmm0
jmp 0x1200faa80
lea rdi, [rsp + 0x60]
mov rax, qword [r8]
mov r9, rdi
nop dword [rax + rax]
mov ecx, eax
and ecx, 0xf
cmp ecx, 0xa
lea r8d, [rcx + 0x37]
lea edx, [rcx + 0x30]
cmovge edx, r8d
sub r9, 1
shr rax, 4
mov byte [r9], dl
jne 0x1200facb0
jmp 0x1200fac40
lea rax, [rsp + 0x80]
mov byte [rsp + 0x80], 0
lea r12, [rsp + 0x70]
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x78], 0
jmp 0x1200fac60
test sil, sil
je 0x1200fad0e
mov byte [r12 - 1], sil
lea r12, [r10 - 2]
lea r14, [rsp + 0x30]
lea rax, [rsp + 0x40]
mov rdx, r12
mov rcx, r14
mov qword [rsp + 0x30], rax
call fcn.120151680
mov rcx, r13
mov rdx, r14
call fcn.120152450
mov rcx, r14
call fcn.120001d48
jmp 0x1200fa772
lea r14, [rsp + 0x50]
movsx edx, sil
mov rcx, r14
call fcn.120001ce0
jmp 0x1200fa99e
mov esi, r11d
mov eax, 0x20
and esi, 2
cmovne esi, eax
jmp 0x1200faab1
movsx edx, sil
mov rcx, r14
call fcn.120001ce0
cmp rbp, r15
jbe 0x1200fad98
mov rdx, qword [rsp + 0x58]
mov dword [rsp + 0x20], 0x30
mov r9, rbp
xor r8d, r8d
mov rcx, r14
sub r9, r15
call fcn.120001d28
mov rdx, qword [rsp + 0x58]
jmp 0x1200faa41
lea r14, [rsp + 0x70]
lea edx, [r8 + 1]
mov r8d, 0x2d
mov rcx, r14
lea r12, [rsp + 0x80]
mov qword [rsp + 0x70], r12
call fcn.120001d38
mov rcx, qword [rsp + 0x70]
add rcx, r15
jmp 0x1200fa8e0
lea r14, [rsp + 0x70]
lea edx, [r8 + 2]
mov r8d, 0x2d
mov rcx, r14
lea r12, [rsp + 0x80]
mov qword [rsp + 0x70], r12
call fcn.120001d38
mov rcx, qword [rsp + 0x70]
lea r8, str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
add rcx, r15
nop word cs:[rax + rax]
movzx eax, byte [r8 + rsi*2 + 1]
mov byte [rcx + 1], al
movzx eax, byte [r8 + rsi*2]
mov byte [rcx], al
jmp 0x1200fa8e6
lea r14, [rsp + 0x70]
lea edx, [rdi + r8 + 5]
mov r8d, 0x2d
mov edi, ebp
mov rcx, r14
lea r12, [rsp + 0x80]
mov qword [rsp + 0x70], r12
call fcn.120001d38
mov rcx, qword [rsp + 0x70]
add rcx, r15
jmp 0x1200fa86a
lea ebp, [rdi + 6]
add edi, 5
jmp 0x1200fa83d
lea ebp, [rdi + 7]
add edi, 6
jmp 0x1200fa83d
cmp rbp, r15
jbe 0x1200faee6
and r11d, 8
jne 0x1200fa995
jmp 0x1200fa97a
lea rdi, [rsp + 0x60]
mov byte [rsp + 0x60], 0
lea r14, [rsp + 0x50]
mov qword [rsp + 0x50], rdi
mov qword [rsp + 0x58], 0
test al, al
je 0x1200faf7a
test sil, sil
jne 0x1200faf41
xor edx, edx
cmp rbp, r15
ja 0x1200faf57
mov qword [rsp + 0x20], r15
mov r9, r12
xor r8d, r8d
mov rcx, r14
call fcn.120001d40
mov rdx, qword [rsp + 0x58]
jmp 0x1200fabd0
test sil, sil
jne 0x1200fad45
mov qword [rsp + 0x20], r15
mov r9, r12
xor r8d, r8d
xor edx, edx
mov rcx, r14
call fcn.120001d40
jmp 0x1200fa9e3
test sil, sil
jne 0x1200faf95
mov qword [rsp + 0x20], r15
mov r9, r12
xor r8d, r8d
xor edx, edx
mov rcx, r14
call fcn.120001d40
mov rdx, qword [rsp + 0x58]
jmp 0x1200fabd0
movdqu xmm1, xmmword [rsp + 0x60]
movups xmmword [rsp + 0x40], xmm1
jmp 0x1200fabf7
movsx edx, sil
mov rcx, r14
call fcn.120001ce0
cmp rbp, r15
jbe 0x1200faf70
mov rdx, qword [rsp + 0x58]
mov dword [rsp + 0x20], 0x30
mov r9, rbp
xor r8d, r8d
mov rcx, r14
sub r9, r15
call fcn.120001d28
mov rdx, qword [rsp + 0x58]
jmp 0x1200faec9
cmp rbp, r15
jbe 0x1200faf09
and r11d, 8
jne 0x1200fab94
jmp 0x1200fab79
lea r14, [rsp + 0x50]
movsx edx, sil
mov rcx, r14
call fcn.120001ce0
jmp 0x1200fab9d
mov edi, 2
mov ebp, 3
jmp 0x1200fa83d
mov edi, 3
mov ebp, 4
jmp 0x1200fa83d
mov dword [rsp + 0x20], 0x20
mov r9, rbp
xor r8d, r8d
mov rcx, r14
sub r9, r15
call fcn.120001d28
jmp 0x1200faf27