Function at 0x12010b6f0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xc8
xor r9d, r9d
lea rdi, [rcx + 0x10]
mov word [rcx + 0x10], r9w
mov r13, rcx
mov rbx, rdx
mov qword [rcx], rdi
mov qword [rcx + 8], 0
movzx eax, byte [rdx + 9]
cmp al, 0x73
je 0x12010bab0
cmp al, 0x69
je 0x12010b820
cmp al, 0x64
je 0x12010b820
cmp al, 0x75
je 0x12010b980
cmp al, 0x78
je 0x12010bbc0
cmp al, 0x58
je 0x12010bd70
cmp al, 0x70
je 0x12010bb5d
cmp al, 0x63
jne 0x12010ba91
movzx eax, byte [r8]
lea rdx, [rsp + 0x70]
lea r8, [rsp + 0x72]
lea rcx, [rsp + 0x90]
lea rsi, [rsp + 0xa0]
mov word [rsp + 0x70], ax
mov qword [rsp + 0x90], rsi
call fcn.120152b50
mov rax, qword [rsp + 0x90]
mov rcx, qword [r13]
cmp rax, rsi
je 0x12010c0d9
mov rdx, qword [rsp + 0xa0]
mov r8, qword [rsp + 0x98]
cmp rdi, rcx
je 0x12010c128
mov r9, qword [r13 + 0x10]
mov qword [r13], rax
mov qword [r13 + 8], r8
mov qword [r13 + 0x10], rdx
test rcx, rcx
je 0x12010ba91
mov qword [rsp + 0x90], rcx
mov qword [rsp + 0xa0], r9
mov qword [rsp + 0x98], 0
xor eax, eax
mov word [rcx], ax
cmp rcx, rsi
je 0x12010ba91
mov rax, qword [rsp + 0xa0]
lea rdx, [rax + rax + 2]
call sub.libstdc_6.dll_operator_delete_void__unsigned_long_long_
jmp 0x12010ba91
mov eax, dword [r8]
movzx edx, byte [rbx + 8]
mov ebp, 0x2d
test eax, eax
js 0x12010b83e
mov ebp, 0x2b
test dl, 0x10
je 0x12010bb90
lea r8, [rsp + 0xb2]
mov r12, r8
nop dword [rax]
movsxd rcx, eax
mov r10d, eax
mov r9, r12
sub r12, 2
imul rcx, rcx, 0x66666667
sar r10d, 0x1f
sar rcx, 0x22
sub ecx, r10d
lea r10d, [rcx + rcx*4]
add r10d, r10d
sub eax, r10d
mov r10d, eax
sar r10d, 0x1f
xor eax, r10d
sub eax, r10d
add eax, 0x30
mov word [r12], ax
mov eax, ecx
test ecx, ecx
jne 0x12010b850
test dl, 4
je 0x12010ba08
mov rsi, r8
mov eax, edx
mov r15, qword [rbx]
sub rsi, r12
and eax, 1
sar rsi, 1
test bpl, bpl
je 0x12010bce0
test r15, r15
je 0x12010bce0
lea r14, [rsp + 0x80]
xor ecx, ecx
sub r15, 1
mov qword [rsp + 0x78], 0
mov qword [rsp + 0x70], r14
mov word [rsp + 0x80], cx
test al, al
jne 0x12010bf06
cmp r15, rsi
jbe 0x12010be9e
and edx, 8
je 0x12010c08c
mov rdx, qword [rsp + 0x78]
mov rcx, qword [rsp + 0x70]
lea rax, [rdx + rdx]
test bpl, bpl
jne 0x12010bfa3
sar rax, 1
mov r10, rax
cmp rdx, r10
jb 0x12010c2c3
mov qword [rsp + 0x20], rsi
lea rbp, [rsp + 0x70]
mov rdx, r10
mov r9, r12
xor r8d, r8d
mov rcx, rbp
call fcn.120001cb8
mov rdx, qword [rsp + 0x78]
cmp r15, rsi
jbe 0x12010bd38
test byte [rbx + 8], 8
je 0x12010bd38
mov dword [rsp + 0x20], 0x20
sub r15, rsi
xor r8d, r8d
mov rcx, rbp
mov r9, r15
call fcn.120001ca8
mov rdx, qword [rsp + 0x78]
jmp 0x12010bd38
mov eax, dword [r8]
movzx edx, byte [rdx + 8]
mov ebp, 0x2d
test eax, eax
js 0x12010b9a7
mov ebp, 0x2b
test dl, 0x10
jne 0x12010b9a7
mov ebp, edx
mov ecx, 0x20
and ebp, 2
cmovne ebp, ecx
lea r8, [rsp + 0xb2]
mov r12, r8
nop word [rax + rax]
movsxd rcx, eax
mov r10d, eax
mov r9, r12
sub r12, 2
imul rcx, rcx, 0x66666667
sar r10d, 0x1f
sar rcx, 0x22
sub ecx, r10d
lea r10d, [rcx + rcx*4]
add r10d, r10d
sub eax, r10d
mov r10d, eax
sar r10d, 0x1f
xor eax, r10d
sub eax, r10d
add eax, 0x30
mov word [r12], ax
mov eax, ecx
test ecx, ecx
jne 0x12010b9b8
test dl, 4
jne 0x12010bda8
nop dword [rax]
test bpl, bpl
jne 0x12010bb78
mov rdx, r12
lea rcx, [rsp + 0x50]
lea rbx, [rsp + 0x60]
xor r9d, r9d
mov qword [rsp + 0x50], rbx
call fcn.120153650
mov rax, qword [rsp + 0x50]
mov rdx, qword [rsp + 0x58]
mov rcx, qword [r13]
cmp rax, rbx
je 0x12010bc80
mov r8, qword [rsp + 0x60]
cmp rdi, rcx
je 0x12010bcc8
mov r9, qword [r13 + 0x10]
mov qword [r13], rax
mov qword [r13 + 8], rdx
mov qword [r13 + 0x10], r8
test rcx, rcx
je 0x12010ba91
mov qword [rsp + 0x50], rcx
mov qword [rsp + 0x60], r9
mov qword [rsp + 0x58], 0
xor esi, esi
mov word [rcx], si
cmp rcx, rbx
je 0x12010ba91
mov rax, qword [rsp + 0x60]
lea rdx, [rax + rax + 2]
call sub.libstdc_6.dll_operator_delete_void__unsigned_long_long_
mov rax, r13
add rsp, 0xc8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov eax, dword [r8]
lea rcx, [rsp + 0x90]
lea r9, [0x1205bfda0]
mov r8d, 0x10
lea rdx, [0x120190420]
lea rsi, [rsp + 0xa0]
mov dword [rsp + 0x20], eax
call fcn.120127490
mov rax, qword [rsp + 0x90]
mov rcx, qword [r13]
cmp rax, rsi
je 0x12010bc2b
mov r8, qword [rsp + 0x98]
mov rdx, qword [rsp + 0xa0]
cmp rdi, rcx
je 0x12010bba8
mov r9, qword [r13 + 0x10]
mov qword [r13], rax
mov qword [r13 + 8], r8
mov qword [r13 + 0x10], rdx
test rcx, rcx
je 0x12010bb5d
mov qword [rsp + 0x90], rcx
mov qword [rsp + 0xa0], r9
mov qword [rsp + 0x98], 0
xor r10d, r10d
mov word [rcx], r10w
cmp rcx, rsi
je 0x12010bb5d
mov rax, qword [rsp + 0xa0]
lea rdx, [rax + rax + 2]
call sub.libstdc_6.dll_operator_delete_void__unsigned_long_long_
movzx r8d, byte [rbx + 8]
mov rdx, qword [rbx]
mov rcx, r13
call fcn.1201120d0
jmp 0x12010ba91
movsx bp, bpl
mov word [r12 - 2], bp
lea r12, [r9 - 4]
jmp 0x12010ba11
mov ebp, edx
mov ecx, 0x20
and ebp, 2
cmovne ebp, ecx
jmp 0x12010b83e
mov qword [r13], rax
mov qword [r13 + 8], r8
mov qword [r13 + 0x10], rdx
jmp 0x12010bb5d
lea r14, [rsp + 0x80]
mov eax, dword [r8]
mov r10, r14
nop
mov ecx, eax
and ecx, 0xf
cmp ecx, 0xa
lea r8d, [rcx + 0x57]
lea edx, [rcx + 0x30]
cmovge edx, r8d
sub r10, 2
shr eax, 4
mov word [r10], dx
jne 0x12010bbd0
lea rcx, [rsp + 0x90]
xor r9d, r9d
mov r8, r14
mov rdx, r10
lea rsi, [rsp + 0xa0]
mov qword [rsp + 0x90], rsi
call fcn.120153650
mov rax, qword [rsp + 0x90]
mov rcx, qword [r13]
cmp rax, rsi
jne 0x12010baf5
mov rax, qword [rsp + 0x98]
mov rdx, rsi
lea r8, [rax + rax]
test rax, rax
je 0x12010bc66
cmp rax, 1
je 0x12010c074
call sub.msvcrt.dll_memcpy
mov rax, qword [rsp + 0x98]
mov rcx, qword [r13]
mov rdx, qword [rsp + 0x90]
lea r8, [rax + rax]
xor r11d, r11d
mov qword [r13 + 8], rax
mov word [rcx + r8], r11w
mov rcx, rdx
jmp 0x12010bb33
lea r8, [rdx + rdx]
mov rax, rbx
test rdx, rdx
je 0x12010bcb0
cmp rdx, 1
je 0x12010bedb
mov rdx, rbx
call sub.msvcrt.dll_memcpy
mov rdx, qword [rsp + 0x58]
mov rcx, qword [r13]
mov rax, qword [rsp + 0x50]
lea r8, [rdx + rdx]
xor edi, edi
mov qword [r13 + 8], rdx
mov word [rcx + r8], di
mov rcx, rax
jmp 0x12010ba6f
mov qword [r13], rax
mov qword [r13 + 8], rdx
mov qword [r13 + 0x10], r8
jmp 0x12010ba91
lea r14, [rsp + 0x80]
xor r11d, r11d
mov qword [rsp + 0x78], 0
mov qword [rsp + 0x70], r14
mov word [rsp + 0x80], r11w
test al, al
je 0x12010bf88
test bpl, bpl
jne 0x12010bf06
xor edx, edx
lea rcx, [rsp + 0x70]
cmp r15, rsi
ja 0x12010bf32
mov qword [rsp + 0x20], rsi
mov r9, r12
xor r8d, r8d
call fcn.120001cb8
mov rdx, qword [rsp + 0x78]
mov rax, qword [rsp + 0x70]
lea rbx, [rsp + 0x60]
mov qword [rsp + 0x50], rbx
cmp rax, r14
je 0x12010bef0
mov rcx, qword [rsp + 0x80]
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x60], rcx
mov qword [rsp + 0x58], rdx
jmp 0x12010ba35
lea r14, [rsp + 0x80]
mov eax, dword [r8]
mov r10, r14
nop
mov ecx, eax
and ecx, 0xf
cmp ecx, 0xa
lea r8d, [rcx + 0x37]
lea edx, [rcx + 0x30]
cmovge edx, r8d
sub r10, 2
shr eax, 4
mov word [r10], dx
jne 0x12010bd80
jmp 0x12010bbf0
mov rsi, r8
mov eax, edx
mov r15, qword [rbx]
sub rsi, r12
and eax, 1
sar rsi, 1
test bpl, bpl
je 0x12010c019
test r15, r15
je 0x12010c019
lea r14, [rsp + 0x80]
xor r8d, r8d
sub r15, 1
mov qword [rsp + 0x78], 0
mov qword [rsp + 0x70], r14
mov word [rsp + 0x80], r8w
test al, al
jne 0x12010c139
cmp r15, rsi
ja 0x12010c0ae
movsx bp, bpl
mov r10d, 1
xor eax, eax
mov rcx, r14
mov qword [rsp + 0x30], 2
mov r11d, 1
mov rdx, r11
mov word [rcx + rax], bp
mov rax, qword [rsp + 0x30]
xor ebp, ebp
mov qword [rsp + 0x78], r11
mov word [rcx + rax], bp
cmp r10, rdx
ja 0x12010c2c3
mov qword [rsp + 0x20], rsi
lea rbp, [rsp + 0x70]
mov rdx, r10
mov r9, r12
xor r8d, r8d
mov rcx, rbp
call fcn.120001cb8
mov rdx, qword [rsp + 0x78]
cmp r15, rsi
jbe 0x12010be70
test byte [rbx + 8], 8
jne 0x12010c239
mov rax, qword [rsp + 0x70]
lea rbx, [rsp + 0x60]
mov qword [rsp + 0x50], rbx
cmp rax, r14
jne 0x12010bd50
movdqu xmm1, xmmword [rsp + 0x80]
mov rax, rbx
movups xmmword [rsp + 0x60], xmm1
jmp 0x12010bd62
movsx bp, bpl
mov r11d, 1
mov rcx, r14
xor eax, eax
mov qword [rsp + 0x30], 2
mov r10d, 1
mov rdx, r11
mov word [rcx + rax], bp
mov rax, qword [rsp + 0x30]
xor r9d, r9d
mov qword [rsp + 0x78], r11
mov word [rcx + rax], r9w
jmp 0x12010b91b
movzx r8d, word [rsp + 0x60]
mov word [rcx], r8w
mov r8d, 2
jmp 0x12010bcb0
movdqu xmm0, xmmword [rsp + 0x80]
mov rax, rbx
movups xmmword [rsp + 0x60], xmm0
jmp 0x12010bd62
movsx bp, bpl
xor r10d, r10d
mov edx, 1
mov qword [rsp + 0x78], 1
mov word [rsp + 0x80], bp
mov word [rsp + 0x82], r10w
jmp 0x12010bd15
mov dword [rsp + 0x20], 0x30
sub r15, rsi
lea rcx, [rsp + 0x70]
xor r8d, r8d
mov r9, r15
mov qword [rsp + 0x30], rcx
call fcn.120001ca8
mov r9, qword [rsp + 0x78]
mov rcx, qword [rsp + 0x30]
lea r8, [r9 + r9]
sar r8, 1
cmp r8, r9
mov rdx, r8
jbe 0x12010bd23
lea rdx, [0x1205bfda6]
lea rcx, [0x1205bfdc0]
call fcn.120001bf0
nop word [rax + rax]
cmp r15, rsi
ja 0x12010b8f5
test bpl, bpl
jne 0x12010c2ce
xor eax, eax
xor edx, edx
jmp 0x12010b915
lea r11, [rdx + 1]
movsx bp, bpl
lea r9, [r11 + r11]
mov r10, r9
mov qword [rsp + 0x30], r9
sar r10, 1
cmp rcx, r14
je 0x12010c2ec
mov r8, qword [rsp + 0x80]
cmp r8, r11
jae 0x12010bebd
lea rcx, [rsp + 0x70]
xor r9d, r9d
xor r8d, r8d
mov qword [rsp + 0x48], r10
mov qword [rsp + 0x20], 1
mov qword [rsp + 0x40], r11
mov qword [rsp + 0x38], rax
call fcn.120001c80
mov r11, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x70]
mov r10, qword [rsp + 0x48]
mov rax, qword [rsp + 0x38]
mov rdx, r11
jmp 0x12010bec0
lea r14, [rsp + 0x80]
xor ecx, ecx
mov qword [rsp + 0x78], 0
mov qword [rsp + 0x70], r14
mov word [rsp + 0x80], cx
test al, al
je 0x12010c1a8
test bpl, bpl
jne 0x12010c139
xor edx, edx
lea rcx, [rsp + 0x70]
cmp r15, rsi
ja 0x12010c163
mov qword [rsp + 0x20], rsi
mov r9, r12
xor r8d, r8d
call fcn.120001cb8
mov rdx, qword [rsp + 0x78]
jmp 0x12010be70
movzx r8d, word [rsp + 0xa0]
mov word [rcx], r8w
mov r8d, 2
jmp 0x12010bc66
mov dword [rsp + 0x20], 0x20
mov r9, r15
xor r8d, r8d
xor edx, edx
lea rcx, [rsp + 0x70]
sub r9, rsi
call fcn.120001ca8
jmp 0x12010b8fe
and edx, 8
je 0x12010c25c
mov rdx, qword [rsp + 0x78]
mov rcx, qword [rsp + 0x70]
lea rax, [rdx + rdx]
test bpl, bpl
jne 0x12010c1c3
sar rax, 1
mov r10, rax
jmp 0x12010be38
mov rax, qword [rsp + 0x98]
mov rdx, rsi
lea r8, [rax + rax]
test rax, rax
je 0x12010c114
cmp rax, 1
je 0x12010c27e
call sub.msvcrt.dll_memcpy
mov rax, qword [rsp + 0x98]
mov rcx, qword [r13]
mov rdx, qword [rsp + 0x90]
lea r8, [rax + rax]
xor r9d, r9d
mov qword [r13 + 8], rax
mov word [rcx + r8], r9w
mov rcx, rdx
jmp 0x12010b7eb
mov qword [r13], rax
mov qword [r13 + 8], r8
mov qword [r13 + 0x10], rdx
jmp 0x12010ba91
movsx bp, bpl
xor eax, eax
mov edx, 1
mov qword [rsp + 0x78], 1
mov word [rsp + 0x80], bp
mov word [rsp + 0x82], ax
jmp 0x12010c04c
mov dword [rsp + 0x20], 0x30
sub r15, rsi
lea rcx, [rsp + 0x70]
xor r8d, r8d
mov r9, r15
mov qword [rsp + 0x30], rcx
call fcn.120001ca8
mov r9, qword [rsp + 0x78]
mov rcx, qword [rsp + 0x30]
lea r8, [r9 + r9]
sar r8, 1
cmp r8, r9
mov rdx, r8
jbe 0x12010c05a
jmp 0x12010bf6f
cmp r15, rsi
ja 0x12010c0ae
test bpl, bpl
jne 0x12010c297
xor edx, edx
xor eax, eax
jmp 0x12010c0ce
lea r11, [rdx + 1]
movsx bp, bpl
lea r9, [r11 + r11]
mov qword [rsp + 0x30], r9
sar r9, 1
mov r10, r9
cmp rcx, r14
je 0x12010c2b5
mov r8, qword [rsp + 0x80]
cmp r11, r8
jbe 0x12010be21
lea rcx, [rsp + 0x70]
xor r9d, r9d
xor r8d, r8d
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x20], 1
mov qword [rsp + 0x40], r11
mov qword [rsp + 0x38], r10
call fcn.120001c80
mov r11, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x70]
mov rax, qword [rsp + 0x48]
mov r10, qword [rsp + 0x38]
mov rdx, r11
jmp 0x12010be24
mov dword [rsp + 0x20], 0x20
sub r15, rsi
xor r8d, r8d
mov rcx, rbp
mov r9, r15
call fcn.120001ca8
mov rdx, qword [rsp + 0x78]
jmp 0x12010be70
mov dword [rsp + 0x20], 0x20
mov r9, r15
xor r8d, r8d
xor edx, edx
lea rcx, [rsp + 0x70]
sub r9, rsi
call fcn.120001ca8
jmp 0x12010c0b7
movzx edx, word [rsp + 0xa0]
mov r8d, 2
mov word [rcx], dx
mov rdx, rsi
jmp 0x12010c114
movsx bp, bpl
xor edx, edx
xor eax, eax
mov r11d, 1
mov qword [rsp + 0x30], 2
mov r10d, 1
mov rcx, r14
mov r8d, 7
jmp 0x12010c1ec
mov r9, rdx
mov r8, r10
jmp 0x12010bf6f
movsx bp, bpl
mov r10d, 1
xor eax, eax
xor edx, edx
mov qword [rsp + 0x30], 2
mov r11d, 1
mov rcx, r14
mov r8d, 7
jmp 0x12010bfcc