Function at 0x202608a0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x70
mov rsi, rcx
mov rax, qword [0x205da420]
xor rax, rsp
mov qword [rsp + 0x68], rax
mov eax, edx
and eax, 0x1f
cmp eax, 0xc
jae 0x20260903
mov rdi, rsi
cmp eax, 6
jae 0x2026099d
cmp eax, 2
jbe 0x202609ac
cmp eax, 3
je 0x20260b3d
cmp eax, 5
jne 0x20260b73
mov rcx, rdi
mov rdx, r9
call fcn.20422320
xor esi, esi
jmp 0x20261150
cmp eax, 0xe
jbe 0x2026096f
cmp eax, 0x14
jae 0x20260a65
cmp eax, 0x11
jae 0x20260b06
cmp eax, 0xf
jne 0x20260ca3
movzx eax, byte [0x2059f909]
cmp al, 0x78
je 0x202614e0
mov ecx, esi
mov r11b, 0x67
lea r10, [rsp + 0x28]
lea rbx, [rsp + 0x50]
mov al, 0x2a
lock cmpxchg byte [0x2059f909], r11b
je 0x20260fa1
cmp al, 0x78
je 0x20260fa9
test edx, 0x800
jne 0x20260941
mov rdi, rsi
mov esi, ecx
mov rax, r10
jmp 0x20260a07
cmp eax, 0xc
je 0x20260ab1
cmp eax, 0xe
jne 0x20260ad8
mov esi, r8d
mov edx, 0xe07846a4
mov eax, edx
and eax, 0xc
mov rdi, r8
mov r8, rsi
cmp eax, 6
jb 0x202608d6
jne 0x202609d6
call fcn.2042482c
movzx esi, al
jmp 0x20261150
test eax, eax
je 0x20260b62
cmp eax, 2
jne 0x20260b8a
test r8d, r8d
je 0x20260dba
mov rcx, r9
mov rsi, r9
call fcn.200782c0
jmp 0x20261150
cmp eax, 8
jbe 0x20260ae6
cmp eax, 9
je 0x20260c26
cmp eax, 0xb
jne 0x20261127
mov rax, qword [r9 + 0x38]
mov rbx, qword [rax]
test rbx, rbx
je 0x20260e5b
lea r10, [r9 + 0x38]
mov esi, edi
mov rcx, qword [r9 + 0x50]
cmp dword [rcx], 0
jg 0x20261030
mov r14d, 0xffffffff
mov r11, qword [r9 + 0x40]
mov r11, qword [r11]
test r11, r11
je 0x20260e66
test byte [r9 + 0x70], 4
jne 0x20260af8
mov r8, qword [r9 + 0x68]
cmp r8, r11
cmovb r8, r11
cmp r8, rbx
jbe 0x202610f4
test dl, dl
js 0x20261112
mov rbx, r9
mov ebp, edx
lea rdi, [rsp + 0x60]
lea rax, [rsp + 0x58]
jmp 0x20260f7b
cmp eax, 0x16
jae 0x20260b1c
cmp eax, 0x14
jne 0x20260cb5
mov r15, r9
mov ebx, edx
xor r14d, r14d
xor eax, eax
sub eax, dword [r8 - 4]
cdqe
lea rdi, [r8 + rax]
add rdi, 0xffffffffffffff78
mov rcx, rdi
call fcn.201162c0
test esi, esi
je 0x20260e9f
mov ecx, esi
mov rsi, rdi
mov edx, ebx
mov r9, r15
jmp 0x202614b1
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x58], r9
mov qword [rsp + 0x50], r9
lea r10, [rsp + 0x60]
xor r11d, r11d
test dl, 0x20
jne 0x20260bc5
xor eax, eax
jmp 0x20261129
mov rdi, rsi
test r8d, r8d
jne 0x202611e0
jmp 0x20260b4f
jne 0x20260c09
cmp r8, r9
jbe 0x20260dda
xor r14d, r14d
test dl, 0x20
je 0x20260c6d
jmp 0x20261034
je 0x20260d69
cmp eax, 0x12
jne 0x20260d76
xor esi, esi
jmp 0x20261150
cmp eax, 0x17
jbe 0x20260cd4
cmp eax, 0x18
jne 0x20260e1e
mov rcx, r9
call fcn.20423908
xor esi, esi
jmp 0x20261150
movzx eax, byte [0x2059f8b5]
cmp al, 0x4e
jne 0x20260d24
mov rsi, rdi
test dl, 0x20
lea rax, [0x2059f8a0]
cmove rsi, rax
jmp 0x20261150
movzx eax, byte [0x2059f8f5]
cmp al, 0xa4
je 0x20260c12
jmp 0x20260bcd
movzx eax, byte [0x2059f8d6]
mov rsi, rdi
cmp al, 0xbc
jne 0x202611e5
jmp 0x20261203
test edi, edi
je 0x20260bcd
mov rcx, r9
mov esi, edx
mov rdi, r9
call fcn.200782c0
mov edx, esi
mov rsi, rdi
test dl, dl
js 0x20261150
xor eax, eax
mov cl, 0x79
xchg byte [0x2059f9f3], cl
test dl, 0x20
lea rsi, [0x2059f9f0]
cmove rsi, rax
jmp 0x20261150
mov rdi, rsi
jmp 0x20261237
mov rsi, r9
test dl, 0x20
jne 0x20261150
mov cl, 0xcf
lea rsi, [0x2059f8e0]
nop word cs:[rax + rax]
mov al, 0xee
lock cmpxchg byte [0x2059f8f5], cl
je 0x20260ea6
cmp al, 0xa4
jne 0x20260bf0
jmp 0x20261150
test r8d, r8d
je 0x20261290
test dl, dl
js 0x20260d59
lea rsi, [0x2059f8e0]
jmp 0x20261150
movzx eax, byte [0x2059f9f3]
lea rsi, [0x2059f9f0]
cmp al, 0x79
je 0x20261150
xor r14d, r14d
mov cl, 0x16
nop word cs:[rax + rax]
mov al, 0xdf
lock cmpxchg byte [0x2059f9f3], cl
je 0x20260e66
cmp al, 0x79
jne 0x20260c50
test dl, 0x40
je 0x20261150
test rdi, rdi
je 0x202610ef
xor eax, eax
cmp rdi, 8
jb 0x20261093
mov rcx, r9
sub rcx, r8
cmp rcx, 0x20
jb 0x20261093
cmp rdi, 0x20
jae 0x2026103c
xor eax, eax
jmp 0x20261073
mov qword [rsp + 0x30], r9
mov qword [rsp + 0x48], r8
mov rdi, rsi
jmp 0x2026125d
mov r10, qword [r9 + 8]
test r10, r10
sete r11b
movzx eax, byte [0x2059f852]
cmp al, 0x3a
jne 0x20260ac8
jmp 0x20261508
mov edx, 0xbfc61548
cmp eax, 0x16
jne 0x20260989
mov rax, qword [r8]
mov rax, qword [rax + 0x18]
lea rdx, [rsp + 0x38]
mov rcx, r8
mov r8d, esi
mov rsi, r9
call qword [case.0x200c66ec.0]
mov rax, qword [rsp + 0x40]
mov rcx, qword [rsi + 8]
mov rax, qword [rax + 8]
cmp rax, qword [rcx + 8]
sete al
mov ecx, dword [rsp + 0x38]
cmp ecx, dword [rsi]
sete cl
and cl, al
movzx esi, cl
jmp 0x20261150
test dl, 0x40
je 0x202614e0
mov cl, 0xc1
lea rsi, [0x2059f8a0]
nop word cs:[rax + rax]
mov al, 0xad
lock cmpxchg byte [0x2059f8b5], cl
je 0x20260f58
cmp al, 0x4e
jne 0x20260d40
jmp 0x20261150
mov rcx, rdi
call fcn.200782c0
mov rsi, rdi
jmp 0x20261150
mov esi, r9d
mov edx, 0xd3c93400
jmp 0x20260989
mov r14, r8
mov ebp, edx
lea rax, [0x2046f1b8]
mov qword [r9], rax
mov rcx, r9
mov rbx, r9
call fcn.200a3bf0
lea rax, [0x2046e1c8]
mov qword [rbx], rax
mov rdi, qword [rbx + 0x60]
test rdi, rdi
je 0x20260f4e
mov edx, ebp
test dl, 0x40
jne 0x20260f60
mov r8, r14
jmp 0x20261130
mov rsi, r9
test dl, 0x40
jne 0x20261150
mov al, 0xa4
xchg byte [0x2059f8f5], al
lea rsi, [0x2059f8e0]
jmp 0x20261150
mov qword [rsp + 0x60], rdi
test rdi, rdi
je 0x20260fc3
mov rcx, rdi
and rcx, 3
je 0x20260fba
lea rax, [rdi - 1]
nop dword [rax]
movzx r10d, byte [r8 + rax]
mov byte [r9 + rax], r10b
mov qword [rsp + 0x60], rax
dec rax
dec rcx
jne 0x20260e00
inc rax
jmp 0x20260fbd
lea rax, [0x2046e1c8]
mov qword [rsi], rax
mov rbx, qword [rsi + 0x60]
test rbx, rbx
je 0x202613bc
xor r14d, r14d
test edx, 0x400
je 0x2026116f
mov r14, r9
mov ebp, edx
mov rcx, qword [rbx + 8]
test rcx, rcx
jne 0x20261386
jmp 0x202613af
mov r14d, 0xffffffff
jmp 0x20261034
test edx, 0x100
jne 0x20261034
add byte [0x2059f9f0], 0xd2
add byte [0x2059f9f1], 0xbd
add byte [0x2059f9f2], 0x13
test edx, 0x200
je 0x20260b15
lea rax, [0x2047d031]
jmp 0x20260baa
mov edx, ebx
jmp 0x202611c3
mov rsi, rdi
test edx, 0x400
je 0x20261150
mov eax, 1
mov ecx, 0x577dc745
mov edx, 0xa88238d0
mov r8d, 0x577dc746
mov r9d, 0xa88238ce
mov r10d, 0xba2e8ba3
lea r11, [0x2059f8e0]
lea rsi, [0x2047cf90]
mov edi, r9d
imul rdi, r10
shr rdi, 0x24
lea ebx, [rdi + rdi*4]
lea ebx, [rdi + rbx*4]
add edi, r8d
add edi, ebx
movzx ebx, byte [rax + r11 - 1]
xor bl, byte [rdi + rsi]
xor bl, 0xb
mov byte [rax + r11 - 1], bl
cmp rax, 0x15
je 0x20260dc6
mov edi, edx
imul rdi, r10
shr rdi, 0x24
lea ebx, [rdi + rdi*4]
lea ebx, [rdi + rbx*4]
add edi, ecx
add edi, ebx
movzx ebx, byte [rax + r11]
mov edi, edi
xor bl, byte [rdi + rsi]
xor bl, 0xb
mov byte [rax + r11], bl
add rax, 2
add ecx, 0xfffffffe
add edx, 2
add r8d, 0xfffffffe
add r9d, 2
jmp 0x20260ee4
mov rcx, rbx
mov edx, ebp
jmp 0x202614ef
xor r14d, r14d
jmp 0x2026116f
mov rcx, qword [rdi + 8]
test rcx, rcx
je 0x20260f92
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [case.0x200c66ec.0]
test rax, rax
je 0x20260f92
mov rcx, qword [rax]
mov r8, qword [rcx]
mov rcx, rax
mov edx, 1
mov rax, r8
call qword [case.0x200c66ec.0]
mov rcx, rdi
call fcn.200782c0
mov edx, ebp
jmp 0x202614cb
xor r14d, r14d
jmp 0x20261463
test edx, 0x200
je 0x202614e0
jmp 0x20261150
mov rax, rdi
cmp rdi, 4
jae 0x20260fc7
xor ebx, ebx
jmp 0x20261021
add rax, 0xfffffffffffffffc
xor ebx, ebx
lea rcx, [rax + 3]
movzx r10d, byte [r8 + rax + 3]
mov byte [r9 + rax + 3], r10b
mov qword [rsp + 0x60], rcx
lea rcx, [rax + 2]
movzx r10d, byte [r8 + rax + 2]
mov byte [r9 + rax + 2], r10b
mov qword [rsp + 0x60], rcx
lea rcx, [rax + 1]
movzx r10d, byte [r8 + rax + 1]
mov byte [r9 + rax + 1], r10b
mov qword [rsp + 0x60], rcx
movzx ecx, byte [r8 + rax]
mov byte [r9 + rax], cl
mov qword [rsp + 0x60], rax
add rax, 0xfffffffffffffffc
cmp rax, 0xfffffffffffffffc
jne 0x20260fcd
mov rsi, r9
test edx, 0x400
jne 0x20261150
movzx r14d, byte [rbx]
mov rsi, r14
jmp 0x20261150
mov rax, rdi
and rax, 0xffffffffffffffe0
xor ecx, ecx
movups xmm0, xmmword [r8 + rcx]
movups xmm1, xmmword [r8 + rcx + 0x10]
movups xmmword [r9 + rcx], xmm0
movups xmmword [r9 + rcx + 0x10], xmm1
add rcx, 0x20
cmp rax, rcx
jne 0x20261045
cmp rdi, rax
je 0x202610ef
test dil, 0x18
je 0x20261093
mov rcx, rax
mov rax, rdi
and rax, 0xfffffffffffffff8
mov rdx, qword [r8 + rcx]
mov qword [r9 + rcx], rdx
add rcx, 8
cmp rax, rcx
jne 0x2026107d
cmp rdi, rax
je 0x202610ef
mov rdx, rdi
mov rcx, rax
and rdx, 3
je 0x202610b3
mov rcx, rax
movzx r10d, byte [r8 + rcx]
mov byte [r9 + rcx], r10b
inc rcx
dec rdx
jne 0x202610a2
sub rax, rdi
cmp rax, 0xfffffffffffffffc
ja 0x202610ef
movzx eax, byte [r8 + rcx]
mov byte [r9 + rcx], al
movzx eax, byte [r8 + rcx + 1]
mov byte [r9 + rcx + 1], al
movzx eax, byte [r8 + rcx + 2]
mov byte [r9 + rcx + 2], al
movzx eax, byte [r8 + rcx + 3]
mov byte [r9 + rcx + 3], al
add rcx, 4
cmp rdi, rcx
jne 0x202610bc
mov rsi, r9
jmp 0x20261150
test edx, 0x200
je 0x20261034
mov r14, r9
mov ebp, edx
lea rax, [rsp + 0x50]
mov rsi, rdi
jmp 0x20261398
mov qword [r9 + 0x68], r8
sub r8d, dword [rax]
mov dword [rcx], r8d
mov rax, qword [r10]
mov rbx, qword [rax]
jmp 0x20261021
ud2
cmp rax, qword [rsp + 0x28]
jae 0x2026114d
mov rcx, qword [rsp + 0x50]
movzx ecx, byte [rcx + rax]
mov byte [r8 + rax], cl
inc rax
test edx, 0x100
jne 0x20261129
jmp 0x2026144f
mov rsi, r8
mov rcx, qword [rsp + 0x68]
xor rcx, rsp
call fcn.20421ce0
mov rax, rsi
add rsp, 0x70
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret
lea eax, [r14 + 0x666aba56]
mov ecx, 0xcccccccd
imul rcx, rax
shr rcx, 0x24
shl ecx, 2
lea eax, [rcx + rcx*4]
neg eax
add eax, r14d
add eax, 0x666aba56
movsxd r14, r14d
lea rcx, [0x2059f8a0]
movzx r8d, byte [r14 + rcx]
lea r9, [0x2047cf50]
sub r9, rax
xor r8b, byte [r9 + 0x13]
xor r8b, 0xdb
mov byte [r14 + rcx], r8b
inc r14d
xor edi, edi
cmp r14d, 0x14
jg 0x202611fb
mov rsi, rdi
test dl, dl
js 0x2026116f
jmp 0x20261150
mov al, 0x4e
xchg byte [0x2059f8b5], al
lea rsi, [0x2059f8a0]
jmp 0x20261150
test dl, 0x40
jne 0x2026120f
mov cl, 0x8c
mov al, 0x85
lock cmpxchg byte [0x2059f8d6], cl
je 0x202613ed
cmp al, 0xbc
jne 0x202611e0
test edx, 0x200
je 0x202611cc
lea rsi, [0x2059f8c0]
jmp 0x20261150
mov rbx, r8
mov r14, r9
mov rcx, rdi
mov ebp, edx
call fcn.200782c0
test ebp, 0x200
jne 0x20261290
mov edx, ebp
lea r10, [rsp + 0x30]
xor r11d, r11d
mov r9, r14
mov r8, rbx
mov cl, 0x8a
nop dword [rax]
mov al, 0x79
lock cmpxchg byte [0x2059f852], cl
je 0x20261255
cmp al, 0x3a
jne 0x20261240
jmp 0x20261517
test edx, 0x400
jne 0x20261298
mov rax, rsi
xor esi, esi
test rax, rax
je 0x20261150
xor ecx, ecx
nop dword [rax]
movzx r10d, byte [r8 + rcx]
movzx r11d, byte [r9 + rcx]
cmp r10b, r11b
jne 0x20261364
inc rcx
cmp rax, rcx
jne 0x20261270
jmp 0x20261150
mov rsi, rdi
jmp 0x20261150
mov rsi, r9
test dl, dl
js 0x20261150
lea rsi, [0x2047cf10]
lea rdi, [rsi + 0xf89ea9e]
add rsi, 0xf89ea9d
mov ecx, 0xf89ea9e
mov r8d, 0xf89ea9d
movabs rbx, 0xf0f0f0f0f0f0f0f1
lea r15, [0x2059f840]
xor r14d, r14d
mov rax, rcx
mov ebp, edx
mul rbx
mov r9, rdx
mov rax, r8
mul rbx
mov rax, rdx
mov edx, ebp
mov r12, rax
shr r12, 4
and rax, 0xfffffffffffffff0
add rax, r12
mov r12, rsi
sub r12, rax
movzx eax, byte [r12]
xor al, 0x28
add byte [rcx + r15 - 0xf89ea9e], al
test dl, 0x40
je 0x20261034
mov rax, r9
shr rax, 4
and r9, 0xfffffffffffffff0
add r9, rax
neg r9
movzx eax, byte [rdi + r9]
xor al, 0x28
add byte [rcx + r15 - 0xf89ea9d], al
cmp rcx, 0xf89eaae
je 0x202613e0
add rdi, 2
add rcx, 2
add rsi, 2
add r8, 2
test dl, 0x40
jne 0x202612d7
jmp 0x20261034
test dl, 0x20
jne 0x20261374
sub r10d, r11d
mov rsi, r10
jmp 0x20261150
mov r14, r9
mov ebp, edx
lea rbx, [rsp + 0x60]
lea rcx, [rsp + 0x48]
mov rsi, rdi
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [case.0x200c66ec.0]
test rax, rax
je 0x202613af
mov rcx, qword [rax]
mov r8, qword [rcx]
mov rcx, rax
mov edx, 1
mov rax, r8
call qword [case.0x200c66ec.0]
mov rcx, rbx
call fcn.200782c0
mov edx, ebp
mov r9, r14
test r9d, r9d
je 0x20261150
mov rcx, rsi
mov edi, edx
call fcn.200782c0
test edi, 0x100
jne 0x20261150
jmp 0x20260c1a
mov al, 0x3a
xchg byte [0x2059f852], al
jmp 0x20261517
mov ecx, 0x1f37b4aa
xor r8d, r8d
movabs r9, 0x2e8ba2e8ba2e8ba3
lea r10, [0x2047cf70]
lea r11, [0x2059f8c0]
nop dword [rax]
mov rax, rcx
mul r9
shr rdx, 2
imul rax, rdx, 0xffffffffffffffea
add rax, r10
movzx edx, byte [r8 + rax + 0x1f37b4aa]
movzx eax, byte [r8 + rax + 0x1f37b4ab]
xor dl, 0x35
add byte [r8 + r11], dl
xor al, 0x35
add byte [r8 + r11 + 1], al
add r8, 2
add rcx, 2
cmp r8, 0x16
jne 0x20261410
mov al, 0xbc
xchg byte [0x2059f8d6], al
lea rsi, [0x2059f8c0]
jmp 0x20261150
lea eax, [r14 - 0x434027d7]
imul rax, rax, 0x38e38e39
shr rax, 0x21
lea eax, [rax + rax*8]
neg eax
add eax, r14d
add eax, 0xbcbfd829
movsxd r14, r14d
lea r8, [0x2059f900]
lea rsi, [r8 + r14]
movzx r10d, byte [r14 + r8]
lea r11, [0x2047cfb0]
xor r10b, byte [rax + r11]
xor r10b, 0xa1
mov byte [r14 + r8], r10b
inc r14d
cmp r14d, 8
jg 0x202614c6
test edx, 0x100
jne 0x20261463
mov rcx, rsi
call fcn.200782c0
jmp 0x20261150
mov rbx, r9
mov esi, ecx
test dl, 0x20
jne 0x202614ec
mov al, 0x78
xchg byte [0x2059f909], al
test dl, dl
js 0x202613ed
lea rsi, [0x2059f900]
jmp 0x20261150
mov rcx, rbx
test esi, esi
je 0x2026152a
mov esi, edx
mov rdi, rcx
call fcn.200782c0
mov r9, rdi
mov edx, esi
xor r10d, r10d
xor r11d, r11d
mov rsi, r9
test edx, 0x100
jne 0x20261150
lea rsi, [0x2059f840]
test r11b, r11b
cmove rsi, r10
jmp 0x20261150
mov rsi, rcx
jmp 0x20261150