Function at 0x1200ffb50
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 esi, esi
lea rax, [rcx + 0x10]
mov word [rcx + 0x10], si
mov r13, rcx
mov rbx, rdx
mov qword [rcx], rax
mov qword [rcx + 8], 0
movzx eax, byte [rdx + 9]
cmp al, 0x73
je 0x1200ffd3e
cmp al, 0x64
je 0x1200ffbf8
cmp al, 0x69
je 0x1200ffbf8
cmp al, 0x75
je 0x1200fff20
cmp al, 0x78
je 0x1200ffcd8
cmp al, 0x58
je 0x1201000b0
cmp al, 0x70
je 0x1201000e8
cmp al, 0x63
jne 0x1200ffd4e
lea r12, [rsp + 0x70]
lea rax, [rsp + 0x80]
mov qword [rsp + 0x78], 0
mov qword [rsp + 0x70], rax
mov rdx, r12
xor eax, eax
mov word [rsp + 0x80], ax
call fcn.1201544d0
mov rcx, r12
call fcn.120001cc0
jmp 0x1200ffd4e
mov eax, dword [r8]
test eax, eax
js 0x1200ffe78
movzx r9d, byte [rbx + 8]
mov esi, 0x2b
test r9b, 0x10
je 0x1200ffe60
lea r8, [rsp + 0x92]
mov r12, r8
nop word [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 0x1200ffc28
test r9b, 4
jne 0x1200ffd68
test sil, sil
je 0x1200ffc8a
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 0x1200ffd4e
mov rax, qword [rsp + 0x40]
lea rdx, [rax + rax + 2]
call sub.libstdc_6.dll_operator_delete_void__unsigned_long_long_
jmp 0x1200ffd4e
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 0x1200ffce8
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
mov rcx, r13
mov rdx, r12
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 0x1200ffe90
test rbp, rbp
je 0x1200ffe90
lea rdi, [rsp + 0x60]
xor r11d, r11d
sub rbp, 1
mov qword [rsp + 0x58], 0
mov qword [rsp + 0x50], rdi
mov word [rsp + 0x60], r11w
test al, al
jne 0x1201001f7
cmp rbp, r14
jbe 0x120100161
and r9d, 8
jne 0x120100161
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 0x120100161
mov r9, qword [rsp + 0x58]
lea r8, [r9 + r9]
sar r8, 1
mov rdx, r8
cmp r9, r8
jb 0x120100362
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 rbp, r14
jbe 0x1200ffee9
test byte [rbx + 8], 8
je 0x1200ffee9
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 0x1200ffee9
mov esi, r9d
mov edx, 0x20
and esi, 2
cmovne esi, edx
jmp 0x1200ffc17
movzx r9d, byte [rbx + 8]
mov esi, 0x2d
jmp 0x1200ffc17
lea rdi, [rsp + 0x60]
xor r10d, r10d
mov qword [rsp + 0x58], 0
mov qword [rsp + 0x50], rdi
mov word [rsp + 0x60], r10w
test al, al
je 0x120100217
test sil, sil
jne 0x1201001f7
cmp rbp, r14
ja 0x120100187
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 0x1201001e7
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 0x1200ffca7
mov eax, dword [r8]
test eax, eax
js 0x1201001d8
movzx r9d, byte [rdx + 8]
mov esi, 0x2b
test r9b, 0x10
je 0x120100174
lea r8, [rsp + 0x92]
mov r12, r8
nop word [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 0x1200fff50
test r9b, 4
je 0x120100118
sub r8, r12
mov eax, r9d
mov r14, qword [rbx]
sar r8, 1
and eax, 1
mov rbp, r8
test sil, sil
je 0x120100230
test r14, r14
je 0x120100230
lea rdi, [rsp + 0x60]
xor r8d, r8d
sub r14, 1
mov qword [rsp + 0x58], 0
mov qword [rsp + 0x50], rdi
mov word [rsp + 0x60], r8w
test al, al
jne 0x1201002bb
cmp r14, rbp
jbe 0x1201002a8
and r9d, 8
jne 0x1201002a8
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 0x1201002a8
mov r9, qword [rsp + 0x58]
lea r8, [r9 + r9]
sar r8, 1
mov rdx, r8
cmp r9, r8
jb 0x120100362
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 rbp, r14
jae 0x120100070
test byte [rbx + 8], 8
jne 0x12010033f
nop word [rax + rax]
lea rax, [rsp + 0x40]
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x50]
cmp rax, rdi
je 0x120100298
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 0x120100149
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 0x1201000c0
jmp 0x1200ffd08
lea rax, [rsp + 0x80]
xor edx, edx
lea r12, [rsp + 0x70]
mov qword [rsp + 0x78], 0
mov qword [rsp + 0x70], rax
mov word [rsp + 0x80], dx
jmp 0x1200ffd2b
test sil, sil
je 0x12010012c
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 0x1200ffd4e
movsx edx, sil
lea rcx, [rsp + 0x50]
call fcn.120001c78
jmp 0x1200ffded
mov esi, r9d
mov edx, 0x20
and esi, 2
cmovne esi, edx
jmp 0x1200fff3f
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 0x1200ffece
mov r9, rdx
lea rcx, [0x1205b9518]
lea rdx, [0x1205b9502]
call fcn.120001bf0
nop dword [rax]
movzx r9d, byte [rdx + 8]
mov esi, 0x2d
jmp 0x1200fff3f
movdqu xmm0, xmmword [rsp + 0x60]
movups xmmword [rsp + 0x40], xmm0
jmp 0x1200fff10
lea r15, [rsp + 0x50]
movsx edx, sil
mov rcx, r15
call fcn.120001c78
mov rdx, qword [rsp + 0x58]
cmp rbp, r14
jbe 0x1201001ac
jmp 0x12010018e
cmp rbp, r14
jbe 0x120100288
and r9d, 8
jne 0x1200ffde4
jmp 0x1200ffdc7
mov qword [rsp + 0x58], 0
lea rdi, [rsp + 0x60]
xor ecx, ecx
mov qword [rsp + 0x50], rdi
mov word [rsp + 0x60], cx
test al, al
je 0x1201002f0
test sil, sil
jne 0x1201002bb
cmp r14, rbp
ja 0x120100308
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 0x120100070
test sil, sil
jne 0x120100161
xor edx, edx
jmp 0x1200ffe05
movdqu xmm1, xmmword [rsp + 0x60]
movups xmmword [rsp + 0x40], xmm1
jmp 0x120100097
movsx edx, sil
lea rcx, [rsp + 0x50]
call fcn.120001c78
jmp 0x120100023
lea r15, [rsp + 0x50]
movsx edx, sil
mov rcx, r15
call fcn.120001c78
mov rdx, qword [rsp + 0x58]
cmp r14, rbp
ja 0x12010030f
lea r8, [rdx + rdx]
sar r8, 1
mov r10, r8
cmp rdx, r8
jae 0x120100268
jmp 0x1201001bf
cmp r14, rbp
jbe 0x12010032f
and r9d, 8
jne 0x12010001a
jmp 0x1200ffffd
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 0x1201002d6
test sil, sil
jne 0x1201002a8
xor edx, edx
jmp 0x12010003b
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 0x120100070
lea rdx, [0x1205b9502]
lea rcx, [0x1205b9518]
call fcn.120001bf0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop