Function at 0x120108b20
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xe8
xor r12d, r12d
lea rdi, [rcx + 0x10]
mov word [rcx + 0x10], r12w
mov r13, rcx
mov rbx, rdx
mov qword [rcx], rdi
mov qword [rcx + 8], 0
movzx eax, byte [rdx + 9]
cmp al, 0x73
je 0x120108ef0
cmp al, 0x69
je 0x120108c50
cmp al, 0x64
je 0x120108c50
cmp al, 0x75
je 0x120108dc0
cmp al, 0x78
je 0x120109148
cmp al, 0x58
je 0x120109220
cmp al, 0x70
je 0x120108f9c
cmp al, 0x63
jne 0x120108ed9
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.120152730
mov rax, qword [rsp + 0x90]
mov rcx, qword [r13]
cmp rax, rsi
je 0x1201095de
mov rdx, qword [rsp + 0xa0]
mov r8, qword [rsp + 0x98]
cmp rdi, rcx
je 0x12010962d
mov r9, qword [r13 + 0x10]
mov qword [r13], rax
mov qword [r13 + 8], r8
mov qword [r13 + 0x10], rdx
test rcx, rcx
je 0x120108ed9
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 0x120108ed9
mov rax, qword [rsp + 0xa0]
lea rdx, [rax + rax + 2]
call sub.libstdc_6.dll_operator_delete_void__unsigned_long_long_
jmp 0x120108ed9
mov rcx, qword [r8]
movzx r9d, byte [rbx + 8]
mov ebp, 0x2d
test rcx, rcx
js 0x120108c71
mov ebp, 0x2b
test r9b, 0x10
je 0x120108fd0
lea r8, [rsp + 0xd2]
movabs r10, 0x6666666666666667
mov r12, r8
nop word cs:[rax + rax]
mov rax, rcx
mov r11, r12
sub r12, 2
imul r10
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 word [r12], cx
mov rcx, rdx
test rdx, rdx
jne 0x120108c90
test r9b, 4
je 0x120108e50
mov rsi, r8
mov eax, r9d
mov r15, qword [rbx]
sub rsi, r12
and eax, 1
sar rsi, 1
test bpl, bpl
je 0x1201090a0
test r15, r15
je 0x1201090a0
lea r14, [rsp + 0x80]
xor r11d, r11d
sub r15, 1
mov qword [rsp + 0x78], 0
mov qword [rsp + 0x70], r14
mov word [rsp + 0x80], r11w
test al, al
jne 0x12010947b
cmp r15, rsi
jbe 0x12010935e
and r9d, 8
je 0x120109578
mov rdx, qword [rsp + 0x78]
mov rcx, qword [rsp + 0x70]
lea rax, [rdx + rdx]
test bpl, bpl
jne 0x1201094a7
sar rax, 1
mov r10, rax
cmp rdx, r10
jb 0x12010980f
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 0x1201090f8
test byte [rbx + 8], 8
je 0x1201090f8
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 0x1201090f8
mov rcx, qword [r8]
movzx r9d, byte [rdx + 8]
mov ebp, 0x2d
test rcx, rcx
js 0x120108deb
mov ebp, 0x2b
test r9b, 0x10
jne 0x120108deb
mov ebp, r9d
mov eax, 0x20
and ebp, 2
cmovne ebp, eax
lea r8, [rsp + 0xd2]
movabs r10, 0x6666666666666667
mov r12, r8
mov rax, rcx
mov r11, r12
sub r12, 2
imul r10
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 word [r12], cx
mov rcx, rdx
test rdx, rdx
jne 0x120108e00
test r9b, 4
jne 0x120109260
nop dword [rax + rax]
test bpl, bpl
jne 0x120108fb8
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 0x120109040
mov r8, qword [rsp + 0x60]
cmp rdi, rcx
je 0x120109088
mov r9, qword [r13 + 0x10]
mov qword [r13], rax
mov qword [r13 + 8], rdx
mov qword [r13 + 0x10], r8
test rcx, rcx
je 0x120108ed9
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 0x120108ed9
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, 0xe8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rax, qword [r8]
lea rcx, [rsp + 0x90]
lea r9, [0x1205bd39a]
mov r8d, 0x20
lea rdx, [0x1201903d0]
lea rsi, [rsp + 0xa0]
mov qword [rsp + 0x20], rax
call fcn.120127490
mov rax, qword [rsp + 0x90]
mov rcx, qword [r13]
cmp rax, rsi
je 0x120108fe8
mov r8, qword [rsp + 0x98]
mov rdx, qword [rsp + 0xa0]
cmp rdi, rcx
je 0x120109130
mov r9, qword [r13 + 0x10]
mov qword [r13], rax
mov qword [r13 + 8], r8
mov qword [r13 + 0x10], rdx
test rcx, rcx
je 0x120108f9c
mov qword [rsp + 0x90], rcx
mov qword [rsp + 0xa0], r9
mov qword [rsp + 0x98], 0
xor edi, edi
mov word [rcx], di
cmp rcx, rsi
je 0x120108f9c
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.120111720
jmp 0x120108ed9
movsx bp, bpl
mov word [r12 - 2], bp
lea r12, [r11 - 4]
jmp 0x120108e59
mov ebp, r9d
mov eax, 0x20
and ebp, 2
cmovne ebp, eax
jmp 0x120108c71
mov rax, qword [rsp + 0x98]
mov rdx, rsi
lea r8, [rax + rax]
test rax, rax
je 0x120109023
cmp rax, 1
je 0x1201095c6
call sub.msvcrt.dll_memcpy
mov rax, qword [rsp + 0x98]
mov rcx, qword [r13]
mov rdx, qword [rsp + 0x90]
lea r8, [rax + rax]
xor ebp, ebp
mov qword [r13 + 8], rax
mov word [rcx + r8], bp
mov rcx, rdx
jmp 0x120108f74
lea r8, [rdx + rdx]
mov rax, rbx
test rdx, rdx
je 0x120109070
cmp rdx, 1
je 0x12010939b
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 0x120108eb7
mov qword [r13], rax
mov qword [r13 + 8], rdx
mov qword [r13 + 0x10], r8
jmp 0x120108ed9
lea r14, [rsp + 0x80]
xor r10d, r10d
mov qword [rsp + 0x78], 0
mov qword [rsp + 0x70], r14
mov word [rsp + 0x80], r10w
test al, al
je 0x120109460
test bpl, bpl
jne 0x12010947b
xor edx, edx
lea rcx, [rsp + 0x70]
cmp r15, rsi
ja 0x12010940c
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 0x1201093f6
mov rcx, qword [rsp + 0x80]
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x60], rcx
mov qword [rsp + 0x58], rdx
jmp 0x120108e7d
mov qword [r13], rax
mov qword [r13 + 8], r8
mov qword [r13 + 0x10], rdx
jmp 0x120108f9c
mov rax, qword [r8]
lea r8, [rsp + 0xb0]
mov r10, r8
nop word cs:[rax + rax]
mov ecx, eax
and ecx, 0xf
cmp ecx, 0xa
lea r9d, [rcx + 0x57]
lea edx, [rcx + 0x30]
cmovge edx, r9d
sub r10, 2
shr rax, 4
mov word [r10], dx
jne 0x120109160
lea rcx, [rsp + 0x70]
lea r14, [rsp + 0x80]
xor r9d, r9d
mov rdx, r10
mov qword [rsp + 0x70], r14
call fcn.120153650
mov rax, qword [rsp + 0x70]
mov rcx, qword [r13]
cmp rax, r14
je 0x1201093b0
mov r8, qword [rsp + 0x78]
mov rdx, qword [rsp + 0x80]
cmp rdi, rcx
je 0x120109130
mov r9, qword [r13 + 0x10]
mov qword [r13], rax
mov qword [r13 + 8], r8
mov qword [r13 + 0x10], rdx
test rcx, rcx
je 0x120108f9c
mov qword [rsp + 0x70], rcx
mov qword [rsp + 0x80], r9
mov qword [rsp + 0x78], 0
xor r10d, r10d
mov word [rcx], r10w
cmp rcx, r14
je 0x120108f9c
mov rax, qword [rsp + 0x80]
lea rdx, [rax + rax + 2]
call sub.libstdc_6.dll_operator_delete_void__unsigned_long_long_
jmp 0x120108f9c
mov rax, qword [r8]
lea r8, [rsp + 0xb0]
mov r10, r8
nop
mov ecx, eax
and ecx, 0xf
cmp ecx, 0xa
lea r9d, [rcx + 0x37]
lea edx, [rcx + 0x30]
cmovge edx, r9d
sub r10, 2
shr rax, 4
mov word [r10], dx
jne 0x120109230
jmp 0x120109181
mov rsi, r8
mov eax, r9d
mov r15, qword [rbx]
sub rsi, r12
and eax, 1
sar rsi, 1
test bpl, bpl
je 0x12010951d
test r15, r15
je 0x12010951d
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 0x12010963e
cmp r15, rsi
ja 0x12010959a
movsx bp, bpl
mov rcx, r14
mov r11d, 1
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 ebp, ebp
mov qword [rsp + 0x78], r11
mov word [rcx + rax], bp
cmp rdx, r10
jb 0x12010980f
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 0x120109330
test byte [rbx + 8], 8
jne 0x12010977b
nop word [rax + rax]
mov rax, qword [rsp + 0x70]
lea rbx, [rsp + 0x60]
mov qword [rsp + 0x50], rbx
cmp rax, r14
jne 0x120109110
movdqu xmm1, xmmword [rsp + 0x80]
mov rax, rbx
movups xmmword [rsp + 0x60], xmm1
jmp 0x120109122
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 r8d, r8d
mov qword [rsp + 0x78], r11
mov word [rcx + rax], r8w
jmp 0x120108d5a
movzx r8d, word [rsp + 0x60]
mov word [rcx], r8w
mov r8d, 2
jmp 0x120109070
mov rax, qword [rsp + 0x78]
mov rdx, r14
lea r8, [rax + rax]
test rax, rax
je 0x1201093e2
cmp rax, 1
je 0x1201096cb
call sub.msvcrt.dll_memcpy
mov rax, qword [rsp + 0x78]
mov rcx, qword [r13]
mov rdx, qword [rsp + 0x70]
lea r8, [rax + rax]
xor r11d, r11d
mov qword [r13 + 8], rax
mov word [rcx + r8], r11w
mov rcx, rdx
jmp 0x1201091ec
movdqu xmm0, xmmword [rsp + 0x80]
mov rax, rbx
movups xmmword [rsp + 0x60], xmm0
jmp 0x120109122
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 0x1201090e3
lea rdx, [0x1205bd3a4]
lea rcx, [0x1205bd3c0]
call fcn.120001bf0
nop dword [rax]
cmp r15, rsi
ja 0x120108d33
test bpl, bpl
jne 0x1201097b7
xor eax, eax
xor edx, edx
jmp 0x120108d54
movsx bp, bpl
xor r9d, r9d
mov edx, 1
mov qword [rsp + 0x78], 1
mov word [rsp + 0x80], bp
mov word [rsp + 0x82], r9w
jmp 0x1201090d5
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 0x1201097d5
mov r8, qword [rsp + 0x80]
cmp r11, r8
jbe 0x12010937d
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 0x120109380
lea r14, [rsp + 0x80]
xor edx, edx
mov qword [rsp + 0x78], 0
mov qword [rsp + 0x70], r14
mov word [rsp + 0x80], dx
test al, al
je 0x1201096b0
test bpl, bpl
jne 0x12010963e
xor edx, edx
lea rcx, [rsp + 0x70]
cmp r15, rsi
ja 0x120109668
mov qword [rsp + 0x20], rsi
mov r9, r12
xor r8d, r8d
call fcn.120001cb8
mov rdx, qword [rsp + 0x78]
jmp 0x120109330
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 0x120108d3d
and r9d, 8
je 0x120109759
mov rdx, qword [rsp + 0x78]
mov rcx, qword [rsp + 0x70]
lea rax, [rdx + rdx]
test bpl, bpl
jne 0x1201096e3
sar rax, 1
mov r10, rax
jmp 0x1201092ef
movzx r8d, word [rsp + 0xa0]
mov word [rcx], r8w
mov r8d, 2
jmp 0x120109023
mov rax, qword [rsp + 0x98]
mov rdx, rsi
lea r8, [rax + rax]
test rax, rax
je 0x120109619
cmp rax, 1
je 0x12010979e
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 0x120108c1b
mov qword [r13], rax
mov qword [r13 + 8], r8
mov qword [r13 + 0x10], rdx
jmp 0x120108ed9
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 0x120109550
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 r9, r8
mov rdx, r8
jae 0x12010955e
jmp 0x120109449
cmp r15, rsi
ja 0x12010959a
test bpl, bpl
jne 0x1201097e3
xor eax, eax
xor edx, edx
jmp 0x1201095bb
movzx r8d, word [rsp + 0x80]
mov word [rcx], r8w
mov r8d, 2
jmp 0x1201093e2
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 0x120109801
mov r8, qword [rsp + 0x80]
cmp r11, r8
jbe 0x1201092d8
lea rcx, [rsp + 0x70]
xor r9d, r9d
xor r8d, r8d
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x20], 1
mov qword [rsp + 0x40], r10
mov qword [rsp + 0x38], r11
call fcn.120001c80
mov r11, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x70]
mov rax, qword [rsp + 0x48]
mov r10, qword [rsp + 0x40]
mov rdx, r11
jmp 0x1201092db
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 0x1201095a4
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 0x120109330
movzx edx, word [rsp + 0xa0]
mov r8d, 2
mov word [rcx], dx
mov rdx, rsi
jmp 0x120109619
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 0x1201094d0
movsx bp, bpl
xor eax, eax
xor edx, edx
mov r10d, 1
mov qword [rsp + 0x30], 2
mov r11d, 1
mov rcx, r14
mov r8d, 7
jmp 0x12010970c
mov r9, rdx
mov r8, r10
jmp 0x120109449