Function at 0x20251039
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x298
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x210], 0xfffffffffffffffe
mov qword [rbp + 0x1b8], rdx
mov rdi, rcx
call fcn.20254a90
mov rcx, qword [0x2059e018]
mov edx, dword [0x2059dff0]
mov esi, 0xffff3e30
sub esi, eax
sub edx, esi
movsxd rax, edx
add rax, rcx
call qword [case.0x200c66ec.0]
mov r15d, eax
mov qword [rbp + 0xf0], rdi
mov rax, qword [rdi + 8]
mov r13d, r15d
mov rcx, r13
shl rcx, 0x23
or rcx, r13
movabs r12, 0x429df308e853be69
mov qword [rbp + 0x200], rcx
xor r12, rcx
test rax, rax
lea rbx, [0x2046d7dc]
cmovne rbx, rax
mov rax, r13
shl rax, 0x20
or rax, r13
movabs rdi, 0xe853be61e853be79
mov qword [rbp + 0x1f8], rax
xor rdi, rax
mov dword [0x2059e97c], 0x69e1b58d
mov rcx, r13
shl rcx, 0x1f
xor rcx, r13
movabs rax, 0x7429df306853be41
mov qword [rbp + 0x1e0], rcx
xor rax, rcx
mov qword [rbp + rdi + 0x128], 0
mov rcx, r13
shl rcx, 0x24
or rcx, r13
movabs rdx, 0x853be610e853be6e
mov qword [rbp + 0x1e8], rcx
xor rdx, rcx
mov qword [rbp + 0x170], rax
mov qword [rbp + 0x168], rdx
mov qword [rbp + rax + 0x128], rdx
mov byte [rbp + r12 + 0x128], 0
mov rcx, qword [0x2059e038]
mov eax, dword [0x2059dff8]
sub eax, esi
cdqe
add rax, rcx
mov edx, r15d
xor edx, 0x125b4694
lea r14, [r12 + rbp]
add r14, 0x128
mov rcx, rbx
call qword [case.0x200c66ec.0]
mov rdx, r13
shl rdx, 0x1c
xor rdx, r13
movabs rcx, 0xe853be6f853be6e
mov qword [rbp + 0x178], rdx
xor rcx, rdx
cmp rax, rcx
nop
mov dword [rbp + 0x20c], esi
mov qword [rbp + 0x1f0], r14
mov qword [rbp + 0x1a8], rdi
jbe 0x20251156
nop
mov rcx, qword [0x2059e058]
mov edx, dword [0x2059dff4]
sub edx, esi
movsxd r8, edx
add r8, rcx
mov rcx, r14
mov rdx, rax
mov r9, rbx
mov rax, r8
call qword [case.0x200c66ec.0]
jmp 0x2025118e
nop
mov qword [rbp + rdi + 0x128], rax
mov rcx, qword [0x2059e030]
mov edx, dword [0x2059dffc]
sub edx, esi
movsxd r9, edx
add r9, rcx
mov rcx, r14
mov rdx, rbx
mov r8, rax
mov rdi, rax
mov rax, r9
call qword [case.0x200c66ec.0]
mov byte [r14 + rdi], 0
lea rax, [0x2046cec8]
mov qword [rbp + 0x128], rax
movabs rax, 0x853be610e853be69
xor rax, qword [rbp + 0x1e8]
mov qword [rbp + 0x150], rax
add rax, rbp
add rax, 0xa8
mov qword [rbp + 0x1c8], rax
movabs r8, 0x7429df306853be79
mov rcx, qword [rbp + 0x1e0]
xor r8, rcx
mov r14, r13
shl r14, 0x22
or r14, r13
movabs rdx, 0xa14ef984e853be41
xor rdx, r14
movabs rax, 0x7429df306853be6e
xor rax, rcx
mov qword [rbp + 0x120], rdx
mov qword [rbp + rdx + 0xa8], rax
movabs rax, 0x429df308e853be6b
xor rax, qword [rbp + 0x200]
mov qword [rbp + 0xd0], r8
mov qword [rbp + r8 + 0xa8], rax
movzx eax, byte [0x2059dc0b]
mov r8d, r15d
xor r8b, 0x9d
cmp al, r8b
je 0x202512d3
mov ecx, r15d
xor cl, 0xab
mov edx, r15d
xor dl, 2
nop
mov eax, ecx
lock cmpxchg byte [0x2059dc0b], dl
je 0x20251263
cmp al, r8b
jne 0x20251250
jmp 0x202512d3
mov ecx, r15d
xor ecx, 0x3c889554
mov r9d, r15d
xor r9d, 0xe853be68
mov eax, r15d
xor eax, 0xe853be6a
cmp eax, 2
mov r10d, 1
cmovge r10d, eax
xor r11d, r11d
lea rdi, [0x2059dc00]
lea rbx, [0x2047c5e0]
nop dword [rax]
mov eax, ecx
xor eax, r11d
mov edx, ecx
and edx, r11d
lea eax, [rax + rdx*2]
xor edx, edx
div r9d
movzx eax, byte [r11 + rdi]
movsxd rdx, edx
xor al, byte [rdx + rbx]
xor al, 2
mov byte [r11 + rdi], al
inc r11
cmp r10, r11
jne 0x202512a0
nop
xchg byte [0x2059dc0b], r8b
mov rax, r13
shl rax, 0x1b
xor rax, r13
movabs r8, 0x7429df3e053be6b
mov qword [rbp + 0x1c0], rax
xor r8, rax
mov rcx, qword [0x2059e048]
mov eax, dword [0x2059e00c]
sub eax, dword [rbp + 0x20c]
cdqe
add rax, rcx
lea rdx, [0x2059dc00]
mov rcx, qword [rbp + 0x1c8]
call qword [case.0x200c66ec.0]
movabs rax, 0xe853be61e853be73
xor rax, qword [rbp + 0x1f8]
mov byte [rbp + rax + 0xa8], 0
lea rax, [0x2046cec8]
mov qword [rbp + 0xa8], rax
mov rax, r13
shl rax, 0x1d
xor rax, r13
movabs rcx, 0x1d0a77ccc853be79
mov qword [rbp + 0x1d0], rax
xor rcx, rax
mov rdx, qword [0x205ec028]
mov qword [rbp + 0x158], rcx
add rdx, qword [rbp + rcx + 0xa8]
mov rcx, r13
shl rcx, 0x1e
xor rcx, r13
movabs rax, 0x3a14ef98a853be79
xor rax, rcx
mov qword [rbp + 0x100], rax
mov r9, qword [rbp + 0x1b8]
mov rax, qword [r9 + rax]
movabs r8, 0x3a14ef98a853be41
mov qword [rbp + 0x1d8], rcx
xor r8, rcx
movabs rcx, 0xa14ef984e853be6e
xor r14, rcx
mov qword [rbp + 0xf8], r8
cmp qword [r9 + r8], r14
mov r8, r9
jbe 0x202513df
mov rcx, qword [rbp + 0x150]
mov rcx, qword [r8 + rcx]
jmp 0x202513e9
mov rcx, qword [rbp + 0x150]
add rcx, r8
test rdx, rdx
setne r8b
test rax, rax
sete r9b
cmp r8b, r9b
mov qword [rbp + 0x1b0], 0xffffffffffffffff
movabs r8, 0xe853be61e853be6e
mov qword [rbp + 0x160], r8
je 0x20251632
mov r8, rdx
or r8, rax
je 0x20251632
movabs r9, 0x853be610e853be41
xor r9, qword [rbp + 0x1e8]
mov r10, qword [rbp + 0x1f8]
movabs r8, 0xe853be61e853be6e
xor r10, r8
mov r8, qword [rbp + 0x1c8]
cmp qword [rbp + r9 + 0xa8], r10
jbe 0x20251468
mov r8, qword [rbp + 0x1c8]
mov r8, qword [r8]
xorps xmm0, xmm0
movaps xmmword [rbp + 0x90], xmm0
movaps xmmword [rbp + 0x80], xmm0
movaps xmmword [rbp + 0x70], xmm0
movaps xmmword [rbp + 0x60], xmm0
movaps xmmword [rbp + 0x50], xmm0
movaps xmmword [rbp + 0x40], xmm0
movaps xmmword [rbp + 0x30], xmm0
movaps xmmword [rbp + 0x20], xmm0
movaps xmmword [rbp + 0x10], xmm0
movaps xmmword [rbp], xmm0
movaps xmmword [rbp - 0x10], xmm0
movaps xmmword [rbp - 0x20], xmm0
movaps xmmword [rbp - 0x30], xmm0
movaps xmmword [rbp - 0x40], xmm0
movaps xmmword [rbp - 0x50], xmm0
movaps xmmword [rbp - 0x60], xmm0
movabs r10, 0x7429df306853be66
xor r10, qword [rbp + 0x1e0]
and r10, rdx
mov r9, r8
je 0x202514f1
xor r11d, r11d
mov r9, r8
nop
movzx edi, byte [r9]
mov byte [rbp + rdi - 0x60], 1
inc r9
mov rdi, r11
xor rdi, 1
and r11d, 1
lea r11, [rdi + r11*2]
cmp r11, r10
jne 0x202514d0
mov r10, r13
shl r10, 0x21
or r10, r13
movabs r11, 0xd0a77cc2e853be69
xor r11, r10
cmp rdx, r11
jb 0x202515c8
add r8, rdx
movabs rdx, 0x1d0a77ccc853be62
xor rdx, qword [rbp + 0x1d0]
movabs r10, 0x853be610e853be65
xor r10, qword [rbp + 0x1e8]
movabs r11, 0x3a14ef98a853be64
xor r11, qword [rbp + 0x1d8]
movabs rbx, 0x7429df306853be67
xor rbx, qword [rbp + 0x1e0]
movabs rdi, 0xe853be6f853be66
xor rdi, qword [rbp + 0x178]
nop dword [rax]
nop
movzx esi, byte [r9]
mov byte [rbp + rsi - 0x60], 1
movzx esi, byte [r9 + 1]
mov byte [rbp + rsi - 0x60], 1
movzx esi, byte [r9 + 2]
mov byte [rbp + rsi - 0x60], 1
movzx esi, byte [r9 + rdx]
mov byte [rbp + rsi - 0x60], 1
movzx esi, byte [r9 + r10]
mov byte [rbp + rsi - 0x60], 1
movzx esi, byte [r9 + r11]
mov byte [rbp + rsi - 0x60], 1
movzx esi, byte [r9 + rbx]
mov byte [rbp + rsi - 0x60], 1
movzx esi, byte [r9 + rdi]
mov byte [rbp + rsi - 0x60], 1
add r9, r12
cmp r9, r8
jne 0x20251570
test rax, rax
jle 0x202515fd
add rax, rcx
xor edx, edx
nop word cs:[rax + rax]
nop
movzx r8d, byte [rcx + rdx]
cmp byte [rbp + r8 - 0x60], 0
jne 0x202515ff
lea r8, [rcx + rdx]
inc r8
inc rdx
cmp r8, rax
jb 0x202515e0
jmp 0x20251632
movabs rax, 0xb0221828fc7c85a8
xor rax, qword [rbp + 0x200]
movabs rcx, 0xe513aabe03837a57
xor rcx, qword [rbp + 0x1f8]
add rcx, rax
lea rax, [rdx + rcx]
inc rax
mov qword [rbp + 0x1b0], rax
nop
mov rax, qword [rbp + 0x1a8]
mov edx, dword [rbp + rax + 0x128]
test edx, edx
movabs rax, 0x429df308e853be6e
mov qword [rbp + 0x1a8], rax
je 0x20251692
nop
mov rax, qword [rbp + 0x200]
movabs rcx, 0x429df308e853be6e
xor rax, rcx
mov rcx, qword [rbp + 0x1f0]
mov r8, qword [rbp + 0x170]
cmp qword [rbp + r8 + 0x128], rax
jbe 0x2025168d
mov rax, qword [rbp + 0x1f0]
mov rcx, qword [rax]
call fcn.200a3fe0
nop
cmp qword [rbp + 0x1b0], 0xffffffffffffffff
sete al
or al, byte [0x205ec329]
mov byte [rbp + 0x1b0], al
test al, 1
movabs rax, 0x7429df3e053be79
mov qword [rbp + 0x118], rax
je 0x20251790
nop
mov rax, qword [rbp + 0x1c0]
movabs rcx, 0x7429df3e053be79
xor rax, rcx
mov rdi, qword [rbp + rax + 0x128]
test rdi, rdi
je 0x20251790
nop
mov rax, qword [rbp + 0x170]
cmp qword [rbp + rax + 0x128], r14
mov r14, qword [rbp + 0x1f0]
mov rsi, qword [r14]
cmova r14, rsi
mov r12d, r15d
xor r12d, 0xc34dda31
xor ebx, ebx
nop word cs:[rax + rax]
nop
movzx ecx, byte [r14 + rbx]
mov rdx, qword [0x2059e060]
mov eax, dword [0x2059dfe4]
sub eax, dword [rbp + 0x20c]
cdqe
add rax, rdx
mov edx, r12d
call qword [case.0x200c66ec.0]
test eax, eax
je 0x20251755
inc rbx
cmp rdi, rbx
jne 0x20251720
jmp 0x20251790
movabs rax, 0x853be610e853be41
xor rax, qword [rbp + 0x1e8]
mov rcx, qword [rbp + 0x168]
cmp qword [rbp + rax + 0x128], rcx
cmovbe rsi, qword [rbp + 0x1f0]
mov rax, qword [rbp + 0x158]
mov qword [rbp + rax + 0x128], rbx
mov byte [rsi + rbx], 0
movabs rdi, 0x7429df306853be69
xor rdi, qword [rbp + 0x1e0]
mov rsi, r13
shl rsi, 0x21
or rsi, r13
movabs rax, 0xd0a77cc2e853be79
xor rax, rsi
mov rcx, qword [rbp + 0x168]
mov rbx, qword [rbp + 0x120]
mov qword [rbp + rbx + 0x180], rcx
mov qword [rbp + rax + 0x180], 1
xor r15b, 0x68
mov byte [rbp + rdi + 0x180], r15b
movabs rax, 0x429df308e853be68
xor rax, qword [rbp + 0x200]
mov byte [rbp + rax + 0x180], 0
lea rax, [0x2046cec8]
mov qword [rbp + 0x180], rax
lea rcx, [rbp - 0x60]
lea r8, [rbp + 0x180]
mov rdx, qword [rbp + 0x1b8]
call fcn.20137870
nop
mov rax, qword [rbp + rbx + 0x180]
movabs rcx, 0x1d0a77ccc853be6e
xor rcx, qword [rbp + 0x1d0]
cmp rax, rcx
movabs r14, 0xd0a77cc2e853be41
jbe 0x20251927
nop
mov rcx, qword [rbp + rdi + 0x180]
lea rdx, [rax + 1]
movabs r8, 0xe853be61e853b19e
xor r8, qword [rbp + 0x1f8]
cmp rdx, r8
jbe 0x20251908
nop
mov r8, qword [rcx - 8]
movabs rdx, 0x981408b21eb85b3c
xor rdx, rsi
movabs r9, 0xc5eb106757ac4199
xor r9, qword [rbp + 0x1d8]
movabs r10, 0xaa46fc43c147a4c3
mov r11, qword [rbp + 0x1d0]
xor r10, r11
add r10, r9
add r10, rdx
add r10, rcx
sub r10, r8
inc r10
mov rcx, rsi
xor rcx, r14
cmp r10, rcx
jae 0x20251e54
movabs rcx, 0x31077b9b71a2d401
xor rcx, rsi
movabs rdx, 0x429df308e853be49
xor rdx, qword [rbp + 0x200]
movabs r9, 0x3558f6aae5d2bfe
xor r9, r11
add r9, rdx
add r9, rcx
lea rdx, [rax + r9]
inc rdx
mov rcx, r8
nop
mov r8, qword [0x2059e050]
mov eax, dword [0x2059dfec]
sub eax, dword [rbp + 0x20c]
cdqe
add rax, r8
call qword [case.0x200c66ec.0]
movabs rax, 0x3a14ef98a853be69
xor rax, qword [rbp + 0x1d8]
lea r15, [rax + rbp]
add r15, 0x180
movabs r13, 0x7429df3e053be41
mov rcx, qword [rbp + 0x1c0]
xor r13, rcx
movabs rax, 0x7429df3e053be69
xor rax, rcx
add rax, rbp
add rax, 0x180
mov qword [rbp + 0x158], rax
xor qword [rbp + 0x118], rcx
movabs rax, 0xe853be61e853be69
mov rdx, qword [rbp + 0x1f8]
xor rax, rdx
add rax, rbp
add rax, 0x180
mov qword [rbp + 0x108], rax
xor r14, rsi
movabs rax, 0xd0a77cc2e853be6e
xor rax, rsi
mov qword [rbp + 0x1b8], rax
xor qword [rbp + 0x160], rdx
mov rdx, qword [rbp + 0x200]
xor qword [rbp + 0x1a8], rdx
movabs rax, 0x7429df3e053b19e
xor rax, rcx
mov qword [rbp + 0xd8], rax
movabs rcx, 0x7ac419ef17ac4199
mov rax, qword [rbp + 0x1e8]
xor rcx, rax
mov qword [rbp + 0x110], rcx
movabs rcx, 0x429df308e853be41
xor rcx, rdx
mov qword [rbp + 0xe0], rcx
movabs rcx, 0x853be610e853be49
xor rcx, rax
mov qword [rbp + 0xe8], rcx
mov dword [rbp + 0x200], 0xffffffff
xor esi, esi
lea r12, [rbp - 0x60]
xor eax, eax
mov qword [rbp + 0x1f8], rax
jmp 0x20251a74
add rax, qword [rbp + 0xe8]
mov rdx, rax
mov rcx, r8
nop
mov r8, qword [0x2059e050]
mov eax, dword [0x2059dfec]
sub eax, dword [rbp + 0x20c]
cdqe
add rax, r8
call qword [case.0x200c66ec.0]
test bl, bl
je 0x20251c53
mov rcx, r12
call fcn.20137880
test al, al
jne 0x20251c53
mov rcx, r12
lea rdx, [rbp + 0x180]
call fcn.20137890
nop
mov rax, qword [rbp + 0x100]
mov edx, dword [rbp + rax + 0x180]
test edx, edx
je 0x20251ac2
mov rcx, r15
mov rax, qword [rbp + 0x1b8]
cmp qword [rbp + r13 + 0x180], rax
jbe 0x20251abd
mov rcx, qword [r15]
call fcn.200a3fe0
test byte [rbp + 0x1b0], 1
je 0x20251b80
nop
mov rax, qword [rbp + 0x100]
mov rdi, qword [rbp + rax + 0x180]
mov rax, qword [rbp + 0xd0]
mov r8, qword [rbp + rax + 0x128]
cmp r8, rdi
jne 0x20251be9
nop
mov rcx, qword [rbp + 0x1f0]
mov rax, qword [rbp + 0x168]
cmp qword [rbp + r13 + 0x128], rax
jbe 0x20251b1a
mov rax, qword [rbp + 0x1f0]
mov rcx, qword [rax]
mov rdx, qword [rbp + 0x108]
mov rax, qword [rbp + 0x160]
cmp qword [rbp + r13 + 0x180], rax
jbe 0x20251b3c
mov rax, qword [rbp + 0x108]
mov rdx, qword [rax]
mov r9, qword [0x2059e068]
mov eax, dword [0x2059dfe8]
sub eax, dword [rbp + 0x20c]
cdqe
add rax, r9
call qword [case.0x200c66ec.0]
test eax, eax
jne 0x20251be9
xor ebx, ebx
mov qword [rbp + 0x1f8], rdi
mov eax, esi
mov dword [rbp + 0x200], esi
jmp 0x20251bed
nop
mov rcx, qword [0x2059e010]
mov eax, dword [0x2059e008]
sub eax, dword [rbp + 0x20c]
cdqe
add rax, rcx
mov rcx, qword [rbp + 0x1f0]
mov rdx, qword [rbp + 0x158]
xor r8d, r8d
call qword [case.0x200c66ec.0]
test rax, rax
jne 0x20251be9
nop
mov rax, qword [rbp + 0x118]
mov rax, qword [rbp + rax + 0x180]
mov rcx, qword [rbp + 0x1f8]
cmp rax, rcx
cmova rcx, rax
mov qword [rbp + 0x1f8], rcx
mov eax, dword [rbp + 0x200]
cmova eax, esi
mov dword [rbp + 0x200], eax
inc esi
mov bl, 1
nop
mov rax, qword [rbp + r14 + 0x180]
cmp rax, qword [rbp + 0x1a8]
jbe 0x20251a6c
nop
mov rcx, qword [rbp + 0x150]
mov rcx, qword [rbp + rcx + 0x180]
mov rdx, rax
xor rdx, 1
mov r8d, eax
and r8d, 1
lea rdx, [rdx + r8*2]
cmp rdx, qword [rbp + 0xd8]
jbe 0x20251a4d
nop
mov r8, qword [rcx - 8]
add rcx, qword [rbp + 0x110]
sub rcx, r8
cmp rcx, qword [rbp + 0xe0]
jb 0x20251a40
call fcn.200782d0
nop
cmp byte [0x205ec0d0], 0
nop
mov esi, dword [rbp + 0x200]
jne 0x20251c7c
cmp esi, 0xffffffff
je 0x20251c7c
nop
mov rax, qword [rbp + 0xf0]
mov rcx, qword [rbp + 0x1f8]
add qword [rax + 8], rcx
nop
mov rcx, qword [0x2059e020]
mov eax, dword [0x2059dfe0]
sub eax, dword [rbp + 0x20c]
cdqe
add rax, rcx
lea rcx, [rbp - 0x60]
call qword [case.0x200c66ec.0]
mov rax, qword [rbp + 0x120]
mov rax, qword [rbp + rax + 0xa8]
movabs rcx, 0x7429df3e053be6e
xor rcx, qword [rbp + 0x1c0]
cmp rax, rcx
jbe 0x20251d94
nop
mov rcx, qword [rbp + 0x1c8]
mov rcx, qword [rcx]
lea rdx, [rax + 1]
movabs r8, 0x853be610e853b19e
xor r8, qword [rbp + 0x1e8]
cmp rdx, r8
jbe 0x20251d75
nop
mov r8, qword [rcx - 8]
movabs rdx, 0x8bd620cf97ac4199
mov r9, qword [rbp + 0x1e0]
xor r9, rdx
add r9, rcx
sub r9, r8
movabs rcx, 0xe853be6f853be41
xor rcx, qword [rbp + 0x178]
cmp r9, rcx
jae 0x20251e59
movabs rcx, 0xa950e5e12442ef86
mov rdx, qword [rbp + 0x1c0]
xor rdx, rcx
movabs rcx, 0x1d0a77ccc853be49
mov r9, qword [rbp + 0x1d0]
xor r9, rcx
add r9, rdx
movabs rcx, 0xd4d661fdd3bd1079
mov rdx, qword [rbp + 0x1e8]
xor rdx, rcx
add rdx, r9
add rdx, rax
inc rdx
mov rcx, r8
nop
mov r8, qword [0x2059e050]
mov eax, dword [0x2059dfec]
sub eax, dword [rbp + 0x20c]
cdqe
add rax, r8
call qword [case.0x200c66ec.0]
nop
mov rax, qword [rbp + 0x170]
mov rax, qword [rbp + rax + 0x128]
cmp rax, qword [rbp + 0x160]
jbe 0x20251e3e
nop
mov rcx, qword [rbp + 0x1f0]
mov rcx, qword [rcx]
mov rdx, rax
xor rdx, 1
mov r8d, eax
and r8d, 1
lea rdx, [rdx + r8*2]
movabs r8, 0xe853be6f853b19e
mov r9, qword [rbp + 0x178]
xor r9, r8
cmp rdx, r9
jbe 0x20251e1f
nop
mov r8, qword [rcx - 8]
mov rdx, qword [rbp + 0x110]
add rdx, rcx
sub rdx, r8
cmp rdx, qword [rbp + 0xf8]
jae 0x20251e5e
movabs rcx, 0x3a14ef98a853be49
mov rdx, qword [rbp + 0x1d8]
xor rdx, rcx
add rax, rdx
mov rdx, rax
mov rcx, r8
nop
mov r8, qword [0x2059e050]
mov eax, dword [0x2059dfec]
sub eax, dword [rbp + 0x20c]
cdqe
add rax, r8
call qword [case.0x200c66ec.0]
mov eax, esi
add rsp, 0x298
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
call fcn.200782d0
call fcn.200782d0
call fcn.200782d0
int3