Function at 0x1200fe470
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 0x1200fe848
cmp al, 0x69
je 0x1200fe4f0
cmp al, 0x64
je 0x1200fe4f0
cmp al, 0x75
je 0x1200fe650
cmp al, 0x78
je 0x1200fe770
cmp al, 0x58
je 0x1200fe980
cmp al, 0x70
je 0x1200fe848
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]
movzx edx, byte [rbx + 8]
mov ebp, 0x2d
test eax, eax
js 0x1200fe50e
mov ebp, 0x2b
test dl, 0x10
je 0x1200fe878
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 0x1200fe520
test dl, 4
je 0x1200fe6d8
mov rsi, r8
mov eax, edx
mov r15, qword [rbx]
sub rsi, r12
and eax, 1
sar rsi, 1
test bpl, bpl
je 0x1200fe8f0
test r15, r15
je 0x1200fe8f0
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 0x1200febd3
cmp r15, rsi
jbe 0x1200feaae
and edx, 8
je 0x1200fecdd
mov rdx, qword [rsp + 0x78]
mov rcx, qword [rsp + 0x70]
lea rax, [rdx + rdx]
test bpl, bpl
jne 0x1200fec10
sar rax, 1
mov r10, rax
cmp r10, rdx
ja 0x1200feee6
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 0x1200fe948
test byte [rbx + 8], 8
je 0x1200fe948
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 0x1200fe948
mov eax, dword [r8]
movzx edx, byte [rdx + 8]
mov ebp, 0x2d
test eax, eax
js 0x1200fe677
mov ebp, 0x2b
test dl, 0x10
jne 0x1200fe677
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 0x1200fe688
test dl, 4
jne 0x1200fe9b8
nop dword [rax]
test bpl, bpl
jne 0x1200fe860
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 0x1200fe890
mov r8, qword [rsp + 0x60]
cmp rdi, rcx
je 0x1200fe8d8
mov r9, qword [r13 + 0x10]
mov qword [r13], rax
mov qword [r13 + 8], rdx
mov qword [r13 + 0x10], r8
test rcx, rcx
je 0x1200fe4d4
mov qword [rsp + 0x50], rcx
mov qword [rsp + 0x60], r9
mov qword [rsp + 0x58], 0
xor r10d, r10d
mov word [rcx], r10w
cmp rcx, rbx
je 0x1200fe4d4
mov rax, qword [rsp + 0x60]
lea rdx, [rax + rax + 2]
call sub.libstdc_6.dll_operator_delete_void__unsigned_long_long_
jmp 0x1200fe4d4
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 0x1200fe780
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
je 0x1200feb00
mov rdx, qword [rsp + 0xa0]
mov r8, qword [rsp + 0x98]
cmp rdi, rcx
je 0x1200febff
mov r9, qword [r13 + 0x10]
mov qword [r13], rax
mov qword [r13 + 8], r8
mov qword [r13 + 0x10], rdx
test rcx, rcx
je 0x1200fe848
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 0x1200fe848
mov rax, qword [rsp + 0xa0]
lea rdx, [rax + rax + 2]
call sub.libstdc_6.dll_operator_delete_void__unsigned_long_long_
nop dword [rax]
movzx r8d, byte [rbx + 8]
mov rdx, qword [rbx]
mov rcx, r13
call fcn.120111c90
jmp 0x1200fe4d4
movsx bp, bpl
mov word [r12 - 2], bp
lea r12, [r9 - 4]
jmp 0x1200fe6e1
mov ebp, edx
mov ecx, 0x20
and ebp, 2
cmovne ebp, ecx
jmp 0x1200fe50e
lea r8, [rdx + rdx]
mov rax, rbx
test rdx, rdx
je 0x1200fe8c0
cmp rdx, 1
je 0x1200feaeb
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 r11d, r11d
mov qword [r13 + 8], rdx
mov word [rcx + r8], r11w
mov rcx, rax
jmp 0x1200fe743
mov qword [r13], rax
mov qword [r13 + 8], rdx
mov qword [r13 + 0x10], r8
jmp 0x1200fe4d4
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 0x1200febb8
test bpl, bpl
jne 0x1200febd3
xor edx, edx
lea rcx, [rsp + 0x70]
cmp r15, rsi
ja 0x1200feb65
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 0x1200feb4f
mov rcx, qword [rsp + 0x80]
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x60], rcx
mov qword [rsp + 0x58], rdx
jmp 0x1200fe705
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 0x1200fe990
jmp 0x1200fe7a0
mov rsi, r8
mov eax, edx
mov r15, qword [rbx]
sub rsi, r12
and eax, 1
sar rsi, 1
test bpl, bpl
je 0x1200fec86
test r15, r15
je 0x1200fec86
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 0x1200fed2a
cmp r15, rsi
ja 0x1200fecff
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 rdx, r10
jb 0x1200feee6
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 0x1200fea80
test byte [rbx + 8], 8
jne 0x1200fee49
mov rax, qword [rsp + 0x70]
lea rbx, [rsp + 0x60]
mov qword [rsp + 0x50], rbx
cmp rax, r14
jne 0x1200fe960
movdqu xmm1, xmmword [rsp + 0x80]
mov rax, rbx
movups xmmword [rsp + 0x60], xmm1
jmp 0x1200fe972
movsx bp, bpl
mov rcx, r14
xor eax, eax
mov r10d, 1
mov qword [rsp + 0x30], 2
mov r11d, 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 0x1200fe5eb
movzx r8d, word [rsp + 0x60]
mov word [rcx], r8w
mov r8d, 2
jmp 0x1200fe8c0
mov rax, qword [rsp + 0x98]
mov rdx, rsi
lea r8, [rax + rax]
test rax, rax
je 0x1200feb3b
cmp rax, 1
je 0x1200fedbb
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 0x1200fe819
movdqu xmm0, xmmword [rsp + 0x80]
mov rax, rbx
movups xmmword [rsp + 0x60], xmm0
jmp 0x1200fe972
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 0x1200fe933
lea rdx, [0x1205bea86]
lea rcx, [0x1205beaa0]
call fcn.120001bf0
nop dword [rax]
cmp r15, rsi
ja 0x1200fe5c5
test bpl, bpl
jne 0x1200fee8e
xor eax, eax
xor edx, edx
jmp 0x1200fe5e5
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 0x1200fe925
mov qword [r13], rax
mov qword [r13 + 8], r8
mov qword [r13 + 0x10], rdx
jmp 0x1200fe848
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 0x1200feeac
mov r8, qword [rsp + 0x80]
cmp r11, r8
jbe 0x1200feacd
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 0x1200fead0
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 0x1200feda0
test bpl, bpl
jne 0x1200fed2a
xor edx, edx
lea rcx, [rsp + 0x70]
cmp r15, rsi
ja 0x1200fed54
mov qword [rsp + 0x20], rsi
mov r9, r12
xor r8d, r8d
call fcn.120001cb8
mov rdx, qword [rsp + 0x78]
jmp 0x1200fea80
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 0x1200fe5ce
and edx, 8
je 0x1200fee6c
mov rdx, qword [rsp + 0x78]
mov rcx, qword [rsp + 0x70]
lea rax, [rdx + rdx]
test bpl, bpl
jne 0x1200fedd3
sar rax, 1
mov r10, rax
jmp 0x1200fea48
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 0x1200fecb5
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 0x1200fecc3
jmp 0x1200feba2
cmp r15, rsi
ja 0x1200fecff
test bpl, bpl
jne 0x1200feeba
xor eax, eax
xor edx, edx
jmp 0x1200fed1f
movzx r8d, word [rsp + 0xa0]
mov word [rcx], r8w
mov r8d, 2
jmp 0x1200feb3b
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 0x1200feed8
mov r8, qword [rsp + 0x80]
cmp r11, r8
jbe 0x1200fea31
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 0x1200fea34
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 0x1200fea80
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 0x1200fed08
movsx bp, bpl
xor eax, eax
xor edx, edx
mov r11d, 1
mov qword [rsp + 0x30], 2
mov r10d, 1
mov rcx, r14
mov r8d, 7
jmp 0x1200fec39
movsx bp, bpl
xor eax, eax
mov r11d, 1
xor edx, edx
mov qword [rsp + 0x30], 2
mov r10d, 1
mov rcx, r14
mov r8d, 7
jmp 0x1200fedfc
mov r9, rdx
mov r8, r10
jmp 0x1200feba2