Function at 0x20125a80
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r12
push rsi
push rdi
push rbx
sub rsp, 0x70
lea rbp, [rsp + 0x70]
mov qword [rbp - 8], 0xfffffffffffffffe
mov rsi, rcx
nop
mov ebx, dword [0x20518668]
cmp qword [0x205749b0], 0
jne 0x20125ad2
mov ecx, 0x900
call fcn.20077cb0
nop
mov qword [rbp - 0x18], rax
mov rcx, rax
call fcn.20067fd0
nop
mov rax, qword [rbp - 0x18]
mov qword [0x205749b0], rax
nop
mov r14, qword [0x205749b0]
mov rax, qword [r14 + 0x5e0]
lea rdx, [rsi + 0x2d0]
mov rcx, qword [rsi + 0x18]
call qword [case.0x200c7fcc.0]
cmp qword [rsi + 0x2d0], 0
je 0x20125b4f
nop
mov rax, qword [r14 + 0x5c8]
lea r8, [rsi + 0x2e0]
mov rcx, qword [rsi + 0x18]
xor edi, edi
xor edx, edx
xor r9d, r9d
call qword [case.0x200c7fcc.0]
cmp qword [rsi + 0x2e0], 0
jne 0x20125e3a
nop
mov dword [rbp - 0xc], 0
test byte [rsi + 0x2f8], 4
jne 0x20125b56
lea rcx, [rsi + 0xa8]
mov edx, dword [rsi + 0x2d0]
call fcn.200d4310
jmp 0x20125b7b
xor edi, edi
jmp 0x20125e3a
nop
mov rax, qword [rsi + 0x2d0]
cmp rax, 0x1000
cdqe
mov edx, 0x1000
cmovl rdx, rax
lea rcx, [rsi + 0xa8]
call fcn.200d4310
nop
mov r8, qword [rsi + 0x2d0]
lea rax, [r8 + 0xfff]
add r8, 0x1ffe
test rax, rax
cmovns r8, rax
sar r8, 0xc
cmp qword [rsi + 0x100], r8
jae 0x20125c1c
lea rcx, [rsi + 0xe8]
mov r15, qword [rsi + 0xf8]
test r15, r15
je 0x20125c26
nop
mov rdi, qword [rsi + 0xf0]
xorps xmm0, xmm0
movups xmmword [rsi + 0xf0], xmm0
mov qword [rsi + 0x100], 0
mov byte [rsi + 0x108], 1
xor edx, edx
call fcn.20130c20
test rdi, rdi
je 0x20125c2d
lea rax, [rsi + 0xf0]
mov r8, qword [rax]
mov rcx, r15
shl rcx, 4
add rcx, r15
mov rdx, rdi
mov r9d, 0x4d89bc41
call fcn.20134680
xor ebx, 0x881c14a0
mov rcx, rdi
mov edx, ebx
call fcn.20078280
jmp 0x20125c2d
nop
mov qword [rsi + 0xf8], r8
jmp 0x20125c2d
xor edx, edx
call fcn.20130c20
nop
mov rcx, qword [rsi + 0x18]
mov rdx, qword [rsi + 0xb8]
cmp rdx, 0x1000
mov r8d, 0x1000
cmovb r8, rdx
mov rax, qword [r14 + 0x5b8]
test rdx, rdx
je 0x20125c5d
mov rdx, qword [rsi + 0xb0]
mov qword [rsp + 0x20], 0
lea r9, [rbp - 0xc]
call qword [case.0x200c7fcc.0]
test eax, eax
setne dil
je 0x20125c88
nop
mov rax, qword [rsi + 0xf0]
mov byte [rax], 1
jmp 0x20125e3a
nop
or byte [rsi + 0x10], 0x20
lea rbx, [rsi + 0x308]
cmp qword [rsi + 0x320], 0x10
mov rax, rbx
jb 0x20125ca8
mov rax, qword [rsi + 0x308]
mov qword [rsi + 0x318], 0
mov byte [rax], 0
lea r14, [rbp - 0x38]
mov qword [rbp - 0x28], 0
mov qword [rbp - 0x20], 0xf
mov byte [rbp - 0x38], 0
movzx eax, byte [0x20516c60]
cmp al, 0xd1
je 0x20125d71
mov cl, 0xe9
nop
mov al, 0x8e
lock cmpxchg byte [0x20516c60], cl
je 0x20125cf2
cmp al, 0xd1
jne 0x20125ce0
jmp 0x20125d71
mov eax, 0xee6c8988
mov ecx, 0x119376a6
mov edx, 1
mov r8d, 0xee6c8989
mov r9d, 0xaaaaaaab
lea r10, [0x20516c30]
lea r11, [0x20416690]
nop dword [rax + rax]
mov r15d, ecx
imul r15, r9
shr r15, 0x25
shl r15d, 4
lea r15d, [r15 + r15*2]
lea r12d, [rax + r15]
add r15d, r8d
movzx r15d, byte [r15 + r11]
xor r15b, 0x6d
add byte [rdx + r10 - 1], r15b
movzx r15d, byte [r12 + r11]
xor r15b, 0x6d
add byte [rdx + r10], r15b
add eax, 0xfffffffe
add ecx, 2
add rdx, 2
add r8d, 0xfffffffe
cmp rdx, 0x31
jne 0x20125d20
mov al, 0xd1
xchg byte [0x20516c60], al
lea r9, [0x20516c30]
mov edx, 0x2f
mov rcx, r14
call fcn.20069620
lea rax, [0x20411008]
mov qword [rbp - 0x40], rax
mov r8, qword [rbp - 0x28]
cmp qword [rbp - 0x20], 0x10
jb 0x20125d9f
mov r14, qword [rbp - 0x38]
mov rdx, qword [rsi + 0x318]
mov rax, qword [rsi + 0x320]
mov rcx, rax
sub rcx, rdx
cmp rcx, r8
jae 0x20125dce
nop
mov qword [rsp + 0x20], r8
mov rcx, rbx
mov rdx, r8
mov r9, r14
call fcn.200ca6c0
jmp 0x20125dfc
lea r15, [rdx + r8]
mov qword [rsi + 0x318], r15
cmp rax, 0x10
jb 0x20125de6
mov rbx, qword [rsi + 0x308]
add rdx, rbx
mov rcx, r14
mov r9d, 0xc3133504
call fcn.20134680
mov byte [rbx + r15], 0
nop
mov rax, qword [rbp - 0x20]
cmp rax, 0x10
jb 0x20125e3a
nop
mov rcx, qword [rbp - 0x38]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x20125e35
nop
mov r8, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r8
cmp rcx, 0x20
jae 0x20125e4b
add rax, 0x28
mov rdx, rax
mov rcx, r8
call fcn.20078280
mov eax, edi
add rsp, 0x70
pop rbx
pop rdi
pop rsi
pop r12
pop r14
pop r15
pop rbp
ret
call fcn.20077cd0
int3