Function at 0x120106b30
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
xor r11d, r11d
lea rax, [rcx + 0x10]
mov word [rcx + 0x10], r11w
mov r13, rcx
mov rbx, rdx
mov qword [rcx], rax
mov qword [rcx + 8], 0
movzx eax, byte [rdx + 9]
cmp al, 0x73
je 0x120106cc0
cmp al, 0x64
je 0x120106be8
cmp al, 0x69
je 0x120106be8
cmp al, 0x75
je 0x120106ec0
cmp al, 0x78
je 0x120107040
cmp al, 0x58
je 0x1201070a0
cmp al, 0x70
je 0x1201070d8
cmp al, 0x63
jne 0x120106d0b
movzx eax, byte [r8]
lea r12, [rsp + 0x70]
lea rdx, [rsp + 0x50]
lea r8, [rsp + 0x52]
mov rcx, r12
mov word [rsp + 0x50], ax
lea rax, [rsp + 0x80]
mov qword [rsp + 0x70], rax
call fcn.1201525d0
mov rcx, r13
mov rdx, r12
call fcn.1201544d0
mov rcx, r12
call fcn.120001cc0
jmp 0x120106d0b
mov eax, dword [r8]
movzx r9d, byte [rbx + 8]
mov esi, 0x2d
test eax, eax
js 0x120106c08
mov esi, 0x2b
test r9b, 0x10
je 0x120106e18
lea r8, [rsp + 0x92]
mov r12, r8
nop dword [rax + rax]
movsxd rdx, eax
mov r10d, eax
mov rcx, r12
sub r12, 2
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 word [r12], ax
mov eax, edx
test edx, edx
jne 0x120106c18
test r9b, 4
jne 0x120106d28
test sil, sil
je 0x120106c7a
movsx si, sil
mov word [r12 - 2], si
lea r12, [rcx - 4]
lea r14, [rsp + 0x30]
lea rbx, [rsp + 0x40]
xor r9d, r9d
mov rdx, r12
mov rcx, r14
mov qword [rsp + 0x30], rbx
call fcn.120153650
mov rcx, r13
mov rdx, r14
call fcn.1201544d0
mov rcx, qword [rsp + 0x30]
cmp rcx, rbx
je 0x120106d0b
mov rax, qword [rsp + 0x40]
lea rdx, [rax + rax + 2]
call sub.libstdc_6.dll_operator_delete_void__unsigned_long_long_
jmp 0x120106d0b
mov eax, dword [r8]
lea r12, [rsp + 0x70]
lea r9, [0x1205b9da8]
mov r8d, 0x10
lea rdx, [0x1201903c0]
mov rcx, r12
mov dword [rsp + 0x20], eax
call fcn.120127490
mov rdx, r12
mov rcx, r13
call fcn.1201544d0
mov rcx, r12
call fcn.120001cc0
movzx r8d, byte [rbx + 8]
mov rdx, qword [rbx]
mov rcx, r13
call fcn.120111290
mov rax, r13
add rsp, 0xa8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
sub r8, r12
mov eax, r9d
mov rbp, qword [rbx]
mov r14, r8
and eax, 1
sar r14, 1
test sil, sil
je 0x120106e30
test rbp, rbp
je 0x120106e30
lea rdi, [rsp + 0x60]
xor r10d, r10d
sub rbp, 1
mov qword [rsp + 0x58], 0
mov qword [rsp + 0x50], rdi
mov word [rsp + 0x60], r10w
test al, al
jne 0x1201071f0
cmp rbp, r14
jbe 0x120107151
and r9d, 8
jne 0x120107151
mov dword [rsp + 0x20], 0x20
mov r9, rbp
xor r8d, r8d
xor edx, edx
lea rcx, [rsp + 0x50]
sub r9, r14
call fcn.120001ca8
test sil, sil
jne 0x120107151
mov r9, qword [rsp + 0x58]
lea r8, [r9 + r9]
sar r8, 1
mov rdx, r8
cmp r9, r8
jb 0x120107346
mov qword [rsp + 0x20], r14
lea r15, [rsp + 0x50]
mov r9, r12
xor r8d, r8d
mov rcx, r15
call fcn.120001cb8
mov rdx, qword [rsp + 0x58]
cmp r14, rbp
jae 0x120106e89
test byte [rbx + 8], 8
je 0x120106e89
mov dword [rsp + 0x20], 0x20
mov r9, rbp
xor r8d, r8d
mov rcx, r15
sub r9, r14
call fcn.120001ca8
mov rdx, qword [rsp + 0x58]
jmp 0x120106e89
mov esi, r9d
mov edx, 0x20
and esi, 2
cmovne esi, edx
jmp 0x120106c08
lea rdi, [rsp + 0x60]
xor r8d, r8d
mov qword [rsp + 0x58], 0
mov qword [rsp + 0x50], rdi
mov word [rsp + 0x60], r8w
test al, al
je 0x1201071d8
test sil, sil
jne 0x1201071f0
cmp rbp, r14
ja 0x120107177
xor r10d, r10d
lea r15, [rsp + 0x50]
mov qword [rsp + 0x20], r14
mov rdx, r10
mov r9, r12
xor r8d, r8d
mov rcx, r15
call fcn.120001cb8
mov rdx, qword [rsp + 0x58]
mov rax, qword [rsp + 0x50]
lea rbx, [rsp + 0x40]
mov qword [rsp + 0x30], rbx
cmp rax, rdi
je 0x1201071c8
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 0x120106c97
mov eax, dword [r8]
movzx r9d, byte [rdx + 8]
mov esi, 0x2d
test eax, eax
js 0x120106ee0
mov esi, 0x2b
test r9b, 0x10
je 0x120107164
lea r8, [rsp + 0x92]
mov r12, r8
nop dword [rax + rax]
movsxd rdx, eax
mov r10d, eax
mov rcx, r12
sub r12, 2
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 word [r12], ax
mov eax, edx
test edx, edx
jne 0x120106ef0
test r9b, 4
je 0x120107108
sub r8, r12
mov eax, r9d
mov r14, qword [rbx]
sar r8, 1
and eax, 1
mov rbp, r8
test sil, sil
je 0x120107210
test r14, r14
je 0x120107210
lea rdi, [rsp + 0x60]
xor ecx, ecx
sub r14, 1
mov qword [rsp + 0x58], 0
mov qword [rsp + 0x50], rdi
mov word [rsp + 0x60], cx
test al, al
jne 0x1201072b3
cmp r14, r8
jbe 0x1201072a0
and r9d, 8
jne 0x1201072a0
mov dword [rsp + 0x20], 0x20
mov r9, r14
xor r8d, r8d
xor edx, edx
lea rcx, [rsp + 0x50]
sub r9, rbp
call fcn.120001ca8
test sil, sil
jne 0x1201072a0
mov r9, qword [rsp + 0x58]
lea r8, [r9 + r9]
sar r8, 1
mov rdx, r8
cmp r9, r8
jb 0x120107346
mov qword [rsp + 0x20], rbp
lea r15, [rsp + 0x50]
mov r9, r12
xor r8d, r8d
mov rcx, r15
call fcn.120001cb8
mov rdx, qword [rsp + 0x58]
cmp r14, rbp
jbe 0x120107008
test byte [rbx + 8], 8
jne 0x120107323
nop dword [rax]
lea rax, [rsp + 0x40]
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x50]
cmp rax, rdi
je 0x120107278
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 0x120107139
lea rdi, [rsp + 0x60]
mov eax, dword [r8]
mov r10, 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 r10, 2
shr eax, 4
mov word [r10], dx
jne 0x120107050
lea r12, [rsp + 0x70]
xor r9d, r9d
mov r8, rdi
mov rdx, r10
lea rax, [rsp + 0x80]
mov rcx, r12
mov qword [rsp + 0x70], rax
call fcn.120153650
jmp 0x120106ce8
lea rdi, [rsp + 0x60]
mov eax, dword [r8]
mov r10, 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 r10, 2
shr eax, 4
mov word [r10], dx
jne 0x1201070b0
jmp 0x120107070
lea rax, [rsp + 0x80]
lea r12, [rsp + 0x70]
mov qword [rsp + 0x78], 0
mov qword [rsp + 0x70], rax
xor eax, eax
mov word [rsp + 0x80], ax
jmp 0x120106ce8
test sil, sil
je 0x12010711c
movsx si, sil
mov word [r12 - 2], si
lea r12, [rcx - 4]
lea r14, [rsp + 0x30]
lea rax, [rsp + 0x40]
xor r9d, r9d
mov rdx, r12
mov rcx, r14
mov qword [rsp + 0x30], rax
call fcn.120153650
mov rcx, r13
mov rdx, r14
call fcn.1201544d0
mov rcx, r14
call fcn.120001cc0
jmp 0x120106d0b
movsx edx, sil
lea rcx, [rsp + 0x50]
call fcn.120001c78
jmp 0x120106dad
mov esi, r9d
mov edx, 0x20
and esi, 2
cmovne esi, edx
jmp 0x120106ee0
xor edx, edx
lea r15, [rsp + 0x50]
mov dword [rsp + 0x20], 0x30
mov r9, rbp
xor r8d, r8d
mov rcx, r15
sub r9, r14
call fcn.120001ca8
mov rdx, qword [rsp + 0x58]
lea r8, [rdx + rdx]
sar r8, 1
mov r10, r8
cmp r8, rdx
jbe 0x120106e6e
mov r9, rdx
lea rcx, [0x1205b9518]
lea rdx, [0x1205b9502]
call fcn.120001bf0
nop dword [rax]
movdqu xmm0, xmmword [rsp + 0x60]
movups xmmword [rsp + 0x40], xmm0
jmp 0x120106eb0
cmp rbp, r14
jbe 0x120107268
and r9d, 8
jne 0x120106da4
jmp 0x120106d87
lea r15, [rsp + 0x50]
movsx edx, sil
mov rcx, r15
call fcn.120001c78
mov rdx, qword [rsp + 0x58]
cmp r14, rbp
jae 0x12010719c
jmp 0x12010717e
mov qword [rsp + 0x58], 0
lea rdi, [rsp + 0x60]
xor edx, edx
mov qword [rsp + 0x50], rdi
mov word [rsp + 0x60], dx
test al, al
je 0x120107288
test sil, sil
jne 0x1201072b3
cmp r14, rbp
ja 0x1201072f0
xor r10d, r10d
lea r15, [rsp + 0x50]
mov qword [rsp + 0x20], rbp
mov rdx, r10
mov r9, r12
xor r8d, r8d
mov rcx, r15
call fcn.120001cb8
mov rdx, qword [rsp + 0x58]
jmp 0x120107008
test sil, sil
jne 0x120107151
xor edx, edx
jmp 0x120106dc5
movdqu xmm1, xmmword [rsp + 0x60]
movups xmmword [rsp + 0x40], xmm1
jmp 0x12010702f
cmp r14, rbp
jbe 0x120107317
and r9d, 8
jne 0x120106fb8
jmp 0x120106f9b
movsx edx, sil
lea rcx, [rsp + 0x50]
call fcn.120001c78
jmp 0x120106fc1
lea r15, [rsp + 0x50]
movsx edx, sil
mov rcx, r15
call fcn.120001c78
mov rdx, qword [rsp + 0x58]
cmp rbp, r14
jb 0x1201072f7
lea r8, [rdx + rdx]
sar r8, 1
mov r10, r8
cmp rdx, r8
jae 0x120107248
jmp 0x1201071af
xor edx, edx
lea r15, [rsp + 0x50]
mov dword [rsp + 0x20], 0x30
sub r14, rbp
xor r8d, r8d
mov rcx, r15
mov r9, r14
call fcn.120001ca8
mov rdx, qword [rsp + 0x58]
jmp 0x1201072ce
test sil, sil
jne 0x1201072a0
xor edx, edx
jmp 0x120106fd9
mov dword [rsp + 0x20], 0x20
sub r14, rbp
xor r8d, r8d
mov rcx, r15
mov r9, r14
call fcn.120001ca8
mov rdx, qword [rsp + 0x58]
jmp 0x120107008
lea rdx, [0x1205b9502]
lea rcx, [0x1205b9518]
call fcn.120001bf0
nop
nop
nop
nop
nop
nop
nop