Function at 0x20352930
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x128
lea rbp, [rsp + 0x80]
mov qword [rbp + 0xa0], 0xfffffffffffffffe
mov qword [rbp + 0x88], r8
mov qword [rbp], rdx
mov qword [rbp + 0x30], rcx
call fcn.20354a70
mov rcx, qword [0x205c32b0]
mov edx, dword [0x205c326c]
mov r8d, 0xaa9b
sub r8d, eax
mov dword [rbp + 0x9c], r8d
sub edx, r8d
movsxd rax, edx
add rax, rcx
call qword [case.0x200c66ec.0]
mov r15d, eax
mov r10d, eax
mov rdx, r10
shl rdx, 0x1b
xor rdx, r10
movabs rax, 0xd5b132f6b41df396
xor rax, rdx
mov rcx, r10
shl rcx, 0x22
or rcx, r10
movabs r8, 0x78fc88b45e3f2225
mov qword [rbp + 0x20], rcx
xor r8, rcx
mov qword [rbp + 0x50], r8
movabs rbx, 0x2f1f911363f220d
mov qword [rbp + 0x58], rdx
xor rbx, rdx
mov r9, r10
shl r9, 0x1e
mov rcx, r10
shl rcx, 0x1d
movabs rsi, 0xdc872fa27c1df396
xor rsi, r10
mov qword [rbp + 0x78], rcx
xor rsi, rcx
sub rsi, rax
mov r8, r10
shl r8, 0x21
or r8, r10
movabs rax, 0xb16324037ffdc5bc
xor rax, r8
mov rdx, r10
shl rdx, 0x20
or rdx, r10
movabs rcx, 0xacddbd8b80023a43
mov qword [rbp + 0x80], rdx
xor rcx, rdx
add rax, rcx
inc rax
mov qword [rbp + 0x68], rax
movabs rax, 0x178fc88b1e3f2222
mov r14, r10
xor r14, rax
mov qword [rbp + 0x70], r9
xor r14, r9
mov dword [rbp + 0x94], r15d
xor r15d, 0x3a60285d
mov rcx, r10
shl rcx, 0x1f
mov qword [rbp + 0x40], r10
xor rcx, r10
movabs rax, 0x2f1f9116de3f2205
mov qword [rbp + 0x28], rcx
xor rax, rcx
mov qword [rbp + 0x18], rax
movabs rax, 0xbc7e445a5e3f222b
mov qword [rbp + 0x60], r8
xor rax, r8
mov qword [rbp + 0x38], rax
inc rsi
mov byte [rbp + 0x9b], 1
xor r8d, r8d
nop word cs:[rax + rax]
lea rax, [r8 + r8*2]
mov rdx, qword [rbp + 0x30]
lea rcx, [rdx + rax*8]
add rcx, 0xb0
mov qword [rbp + 0x48], rcx
mov r12, qword [rdx + rax*8 + 0xb0]
cmp r12, qword [rdx + rax*8 + 0xb8]
je 0x20352b60
xor edi, edi
mov r13, r8
nop
nop
cmp qword [r12 + rbx], r14
jbe 0x20352b10
mov rax, qword [rbp + 0x50]
mov rdx, qword [r12 + rax]
jmp 0x20352b18
mov rax, qword [rbp + 0x50]
lea rdx, [r12 + rax]
mov rcx, qword [0x205c32b8]
mov eax, dword [0x205c3268]
sub eax, dword [rbp + 0x9c]
cdqe
add rax, rcx
mov rcx, qword [rbp + 0x88]
mov r8d, r15d
call qword [case.0x200c66ec.0]
test rax, rax
je 0x20352b70
add r12, 0x28
add rdi, rsi
mov rax, qword [rbp + 0x48]
cmp r12, qword [rax + 8]
mov r8, r13
jne 0x20352af0
jmp 0x20352b73
xor edi, edi
jmp 0x20352b73
mov r8, r13
nop
mov rcx, qword [rbp + 0x48]
mov rax, qword [rcx + 8]
add rax, qword [rbp + 0x68]
sub rax, qword [rcx]
cqo
idiv qword [rbp + 0x18]
cmp rdi, rax
je 0x20352bbf
cmp r8, qword [rbp + 0x38]
lea rax, [r8 + 1]
setb byte [rbp + 0x9b]
mov rcx, qword [rbp + 0x58]
xor rcx, rax
mov r8, rax
movabs rax, 0x2f1f911363f222a
cmp rcx, rax
jne 0x20352ac0
jmp 0x203535ec
nop
cmp qword [0x205ee3e0], 0
jne 0x20352c39
movabs rcx, 0x2f1f9116de3f221d
xor rcx, qword [rbp + 0x28]
mov rdx, qword [0x205c3288]
mov eax, dword [0x205c3264]
sub eax, dword [rbp + 0x9c]
cdqe
add rax, rdx
call qword [case.0x200c66ec.0]
mov rdx, qword [rbp + 0x40]
mov rcx, rdx
shl rcx, 0x23
or rcx, rdx
movabs rdx, 0xf1f911685e3f2222
xor rdx, rcx
mov qword [rax + 0x28], rdx
lea rcx, [0x2046cec8]
mov qword [rax + 8], rcx
mov dword [rax], 0
mov qword [rax + 0x20], 0
mov byte [rax + 0x10], 0
mov qword [0x205ee3e0], rax
nop
mov rcx, qword [0x205ee3e0]
mov eax, dword [rbp + 0x94]
xor eax, 0x5e3f2239
mov qword [rbp + 8], rcx
mov dword [rcx], eax
mov r11, qword [rbp + 0x40]
mov r15, r11
shl r15, 0x24
or r15, r11
movabs r10, 0xe3f222d05e3f2225
xor r10, r15
mov rdi, r11
shl rdi, 0x23
or rdi, r11
movabs rcx, 0xf1f911685e3f2225
xor rcx, rdi
mov r8, qword [rbp + 0x78]
xor r8, r11
movabs rax, 0xbc7e445fe3f2235
xor rax, r8
xorps xmm0, xmm0
movups xmmword [rbp + rax - 0x50], xmm0
mov r9, r11
shl r9, 0x1c
xor r9, r11
movabs rdx, 0x5e3f2228e3f2235
mov qword [rbp + 0x68], r9
xor rdx, r9
mov r13, qword [rbp]
mov r14, qword [r13 + rdx]
mov rdx, qword [rbp + 0x70]
xor rdx, r11
movabs r9, 0x178fc88b1e3f220d
mov qword [rbp + 0x70], rdx
xor r9, rdx
movabs rdx, 0xbc7e445fe3f2222
mov qword [rbp + 0x78], r8
xor rdx, r8
mov qword [rbp + 0x40], rdx
mov qword [rbp + 0x10], r9
cmp qword [r13 + r9], rdx
jbe 0x20352d03
mov r13, qword [r13 + rcx]
jmp 0x20352d06
add r13, rcx
mov qword [rbp + 0x38], r10
lea rcx, [r10 + rbp]
add rcx, 0xffffffffffffffb0
lea rax, [rbp + rax - 0x50]
mov qword [rbp + 0x50], rax
movabs rax, 0x78fc88b45e3f223d
mov r12, qword [rbp + 0x20]
xor rax, r12
cmp r14, rax
movabs rdx, 0xbc7e445a5e3f2222
mov qword [rbp + 0x88], rcx
jae 0x20352d7e
movabs r8, 0x5e3f222d5e3f223d
xor r8, qword [rbp + 0x80]
mov rdx, qword [0x205c32a0]
mov eax, dword [0x205c325c]
sub eax, dword [rbp + 0x9c]
cdqe
add rax, rdx
mov rdx, r13
call qword [case.0x200c66ec.0]
mov esi, 0xf
jmp 0x20352e88
nop
mov rax, qword [rbp + 0x60]
xor rax, rdx
or rax, r14
movabs rsi, 0x7fffffffffffffff
cmp rax, rsi
cmovb rsi, rax
movabs rcx, 0x78fc88b45e3f2dd3
xor rcx, r12
cmp rax, rcx
jbe 0x20352e28
movabs rcx, 0x5e3f222d5e3f2205
xor rcx, qword [rbp + 0x80]
add rcx, rsi
mov rdx, qword [0x205c3288]
mov eax, dword [0x205c3264]
mov ebx, dword [rbp + 0x9c]
sub eax, ebx
cdqe
add rax, rdx
call qword [case.0x200c66ec.0]
movabs rcx, 0xbc7e445fe3f220a
xor rcx, qword [rbp + 0x78]
xor rcx, rax
movabs rdx, 0x5e3f2228e3f220a
xor rdx, qword [rbp + 0x68]
and rdx, rax
add rdx, rdx
mov r8, rdx
xor r8, rcx
and rdx, rcx
lea rdx, [r8 + rdx*2]
movabs rcx, 0x8703774ba1c0ddcd
xor rcx, r12
and rcx, rdx
mov qword [rcx - 8], rax
jmp 0x20352e4f
lea rcx, [rsi + 1]
mov rdx, qword [0x205c3288]
mov eax, dword [0x205c3264]
mov ebx, dword [rbp + 0x9c]
sub eax, ebx
cdqe
add rax, rdx
call qword [case.0x200c66ec.0]
mov rcx, rax
nop
mov rax, qword [rbp + 0x88]
mov qword [rax], rcx
mov rax, r14
xor rax, 1
mov edx, r14d
and edx, 1
lea r8, [rax + rdx*2]
mov rdx, qword [0x205c32a0]
mov eax, dword [0x205c325c]
sub eax, ebx
cdqe
add rax, rdx
mov rdx, r13
call qword [case.0x200c66ec.0]
nop
mov rax, qword [rbp + 0x50]
mov qword [rax], r14
movabs rax, 0xf1f911685e3f220d
xor rax, rdi
mov qword [rbp + 0x30], rax
mov qword [rbp + rax - 0x50], rsi
lea rax, [0x2046cec8]
mov qword [rbp - 0x50], rax
mov rax, rsi
sub rax, r14
movabs r8, 0xf1f911685e3f222e
xor r8, rdi
cmp rax, r8
jb 0x20352f9a
nop
test byte [0x205ec298], 1
jne 0x20352f9a
movabs rax, 0x2f1f9116de3f2235
xor rax, qword [rbp + 0x28]
movabs rcx, 0xdb236ced70ad0f14
xor rcx, qword [rbp + 0x70]
movabs rdx, 0xe3f222d05e3f222e
xor r15, rdx
add r15, rcx
movabs rcx, 0xc2aa4af1cf52f0eb
xor rcx, rdi
add rcx, r15
lea rbx, [r14 + rcx]
inc rbx
mov qword [rbp + rax - 0x50], rbx
movabs rax, 0x2f1f911363f2222
xor rax, qword [rbp + 0x58]
mov r15, qword [rbp + 0x88]
cmp rsi, rax
jbe 0x20352f47
mov rax, qword [rbp + 0x88]
mov r15, qword [rax]
add r14, r15
movzx eax, byte [0x205c3024]
mov ecx, dword [rbp + 0x94]
mov r8d, ecx
xor r8b, 0x43
cmp al, r8b
je 0x203530fe
mov eax, dword [rbp + 0x94]
mov ecx, eax
xor cl, 0x6b
mov edx, eax
xor dl, 0xa3
nop word [rax + rax]
mov eax, ecx
lock cmpxchg byte [0x205c3024], dl
je 0x2035308c
cmp al, r8b
jne 0x20352f80
jmp 0x203530fe
nop
movzx eax, byte [0x205c3024]
mov ecx, dword [rbp + 0x94]
mov r9d, ecx
xor r9b, 0x43
cmp al, r9b
je 0x2035305a
mov eax, dword [rbp + 0x94]
mov ecx, eax
xor cl, 0x6b
mov edx, eax
xor dl, 0xa3
nop dword [rax + rax]
mov eax, ecx
lock cmpxchg byte [0x205c3024], dl
je 0x20352fe3
cmp al, r9b
jne 0x20352fd0
jmp 0x2035305a
nop
mov eax, dword [rbp + 0x94]
mov ecx, eax
xor ecx, 0x5c463092
mov r10d, eax
xor r10d, 0x5e3f2229
mov r11d, eax
xor r11b, 0xa5
mov ebx, eax
xor bl, 0x5a
cmp r10d, 2
mov esi, 1
cmovge esi, r10d
xor r14d, r14d
lea r15, [0x205c3020]
lea r12, [0x20490f70]
xor bl, r11b
nop dword [rax]
lea eax, [rcx + r14]
xor edx, edx
div r10d
movsxd rax, edx
movzx eax, byte [rax + r12]
and al, bl
xor al, r11b
xor byte [r14 + r15], al
inc r14
cmp rsi, r14
jne 0x20353030
nop
xchg byte [0x205c3024], r9b
movabs rax, 0xbc7e445a5e3f222e
xor rax, qword [rbp + 0x60]
nop
mov qword [rsp + 0x20], rax
lea r9, [0x205c3020]
mov rcx, qword [rbp + 0x88]
mov rdx, r8
call fcn.200c8e20
mov r14, rax
jmp 0x20353144
nop
mov r13d, dword [rbp + 0x94]
mov ecx, r13d
xor ecx, 0x5c463092
mov r9d, r13d
xor r9d, 0x5e3f2229
cmp r9d, 2
mov r10d, 1
cmovge r10d, r9d
xor r11d, r11d
lea rsi, [0x205c3020]
lea r12, [0x20490f70]
nop word cs:[rax + rax]
lea eax, [rcx + r11]
xor edx, edx
div r9d
movsxd rax, edx
movzx eax, byte [rax + r12]
xor al, r13b
xor al, byte [r11 + rsi]
xor al, 0xa5
mov byte [r11 + rsi], al
inc r11
cmp r10, r11
jne 0x203530d0
nop
xchg byte [0x205c3024], r8b
movabs rax, 0x2f1f9116de3f222e
mov r8, qword [rbp + 0x28]
xor r8, rax
mov rcx, qword [0x205c32a0]
mov eax, dword [0x205c325c]
sub eax, dword [rbp + 0x9c]
cdqe
add rax, rcx
lea rdx, [0x205c3020]
mov rcx, r14
call qword [case.0x200c66ec.0]
mov byte [r15 + rbx], 0
nop
mov r14, qword [rbp + 0x88]
nop
mov rax, qword [rbp + 0x48]
mov r15, qword [rax]
movabs rax, 0x5e3f222d5e3f220d
xor rax, qword [rbp + 0x80]
movabs r12, 0x5e3f2228e3f2222
xor r12, qword [rbp + 0x68]
cmp qword [r15 + rax], r12
jbe 0x2035317b
mov rax, qword [rbp + 0x38]
mov r15, qword [r15 + rax]
jmp 0x2035317f
add r15, qword [rbp + 0x38]
mov edx, dword [rbp + 0x94]
xor edx, 0xd05affab
mov rcx, qword [0x205c3280]
mov eax, dword [0x205c3270]
sub eax, dword [rbp + 0x9c]
cdqe
add rax, rcx
mov rcx, r15
call qword [case.0x200c66ec.0]
mov rcx, qword [r14 + 0x10]
mov rdx, qword [r14 + 0x18]
mov r8, rdx
sub r8, rcx
cmp r8, rax
jae 0x203531d5
nop
mov qword [rsp + 0x20], rax
mov rcx, r14
mov rdx, rax
mov r9, r15
call fcn.200c8e20
jmp 0x20353226
mov rsi, rax
add rsi, rcx
mov qword [r14 + 0x10], rsi
movabs r8, 0xf1f911685e3f2222
xor r8, rdi
cmp rdx, r8
jbe 0x203531f4
mov r14, qword [r14]
add rcx, r14
mov rdx, qword [0x205c32c0]
mov r8d, dword [0x205c3260]
sub r8d, dword [rbp + 0x9c]
movsxd r9, r8d
add r9, rdx
mov rdx, r15
mov r8, rax
mov rax, r9
call qword [case.0x200c66ec.0]
mov byte [r14 + rsi], 0
movabs rax, 0x2f1f911363f2225
xor rax, qword [rbp + 0x58]
movabs rcx, 0xbc7e445a5e3f2235
xor rcx, qword [rbp + 0x60]
xorps xmm0, xmm0
movups xmmword [rbp + rcx - 0x28], xmm0
mov rdx, qword [rbp + 0x50]
mov rsi, qword [rdx]
mov r15, qword [rbp + 0x88]
mov rdx, qword [rbp + 0x30]
cmp qword [rbp + rdx - 0x50], r12
jbe 0x2035326d
mov rdx, qword [rbp + 0x88]
mov r15, qword [rdx]
lea r14, [rax + rbp]
add r14, 0xffffffffffffffd8
lea rbx, [rcx + rbp]
add rbx, 0xffffffffffffffd8
movabs rax, 0xf1f911685e3f223d
xor rax, rdi
cmp rsi, rax
jae 0x20353303
movabs rax, 0x2f1f911363f223d
mov r8, qword [rbp + 0x58]
xor r8, rax
mov rcx, qword [0x205c32a0]
mov eax, dword [0x205c325c]
sub eax, dword [rbp + 0x9c]
cdqe
add rax, rcx
mov rcx, r14
mov rdx, r15
call qword [case.0x200c66ec.0]
mov qword [rbx], rsi
movabs rax, 0xbc7e445fe3f220d
xor rax, qword [rbp + 0x78]
lea rsi, [rax + rbp]
add rsi, 0xffffffffffffffd8
movabs rcx, 0x178fc88b1e3f2222
xor rcx, qword [rbp + 0x70]
mov qword [rbp + rax - 0x28], rcx
lea rax, [0x2046cec8]
mov qword [rbp - 0x28], rax
mov rdx, r14
jmp 0x20353421
nop
mov qword [rbp + 0x48], rbx
movabs rax, 0x2f1f911363f2222
mov rdx, qword [rbp + 0x58]
xor rax, rdx
or rax, rsi
movabs r13, 0x7fffffffffffffff
cmp rax, r13
cmovb r13, rax
movabs rcx, 0x2f1f911363f2dd3
xor rcx, rdx
cmp rax, rcx
jbe 0x203533b9
movabs rcx, 0x5e3f222d5e3f2205
xor rcx, qword [rbp + 0x80]
add rcx, r13
call fcn.200782b0
nop
mov rcx, qword [rbp + 0x80]
xor rcx, rax
movabs rdx, 0x5e3f222d5e3f220a
xor rdx, rcx
movabs rcx, 0x78fc88b45e3f220a
mov rbx, qword [rbp + 0x20]
xor rcx, rbx
and rcx, rax
lea rdx, [rdx + rcx*2]
movabs rcx, 0xfa1c0ddd71c0ddcd
xor rcx, qword [rbp + 0x68]
xor rcx, rdx
not rdx
movabs r8, 0x178fc88b1e3f2232
xor r8, qword [rbp + 0x70]
and r8, rdx
or rcx, r8
not rcx
mov qword [rcx - 8], rax
jmp 0x203533c9
lea rcx, [r13 + 1]
call fcn.200782b0
mov rcx, rax
mov rbx, qword [rbp + 0x20]
nop
mov qword [r14], rcx
lea r8, [rsi + 1]
mov rdx, qword [0x205c32a0]
mov eax, dword [0x205c325c]
sub eax, dword [rbp + 0x9c]
cdqe
add rax, rdx
mov rdx, r15
call qword [case.0x200c66ec.0]
mov rax, qword [rbp + 0x48]
mov qword [rax], rsi
movabs rax, 0x78fc88b45e3f220d
xor rbx, rax
lea rsi, [rbx + rbp]
add rsi, 0xffffffffffffffd8
mov qword [rbp + rbx - 0x28], r13
lea rax, [0x2046cec8]
mov qword [rbp - 0x28], rax
mov rdx, qword [r14]
nop
mov rcx, qword [rbp + 8]
add rcx, 8
call fcn.200a7c20
nop
mov rax, qword [rsi]
movabs rcx, 0xbc7e445a5e3f2222
xor rcx, qword [rbp + 0x60]
cmp rax, rcx
jbe 0x203534c1
nop
mov rcx, qword [r14]
lea edx, [rax + rax]
and edx, 2
mov r8, rdx
xor r8, rax
xor r8, 1
and edx, eax
lea rdx, [r8 + rdx*2]
movabs r8, 0x178fc88b1e3f2dd2
mov r9, qword [rbp + 0x70]
xor r9, r8
cmp rdx, r9
jbe 0x203534a2
nop
mov r8, qword [rcx - 8]
movabs rdx, 0xe06ee97a1c0ddd5
xor rdi, rdx
add rdi, rcx
sub rdi, r8
cmp rdi, qword [rbp + 0x10]
jae 0x2035360e
add rax, qword [rbp + 0x18]
mov rdx, rax
mov rcx, r8
nop
mov r8, qword [0x205c32a8]
mov eax, dword [0x205c3258]
sub eax, dword [rbp + 0x9c]
cdqe
add rax, r8
call qword [case.0x200c66ec.0]
nop
mov qword [rsi], r12
mov rax, qword [rbp + 0x30]
mov rax, qword [rbp + rax - 0x50]
cmp rax, qword [rbp + 0x40]
jbe 0x203535ec
nop
mov rcx, qword [rbp + 0x88]
mov rcx, qword [rcx]
movabs rdx, 0x54e7b84dc9e80617
xor rdx, qword [rbp + 0x80]
movabs r8, 0xfee081da9617f9e8
mov r9, qword [rbp + 0x78]
xor r8, r9
add r8, rdx
lea rdx, [rax + r8]
add rdx, 2
movabs r8, 0xbc7e445fe3f2dd2
xor r8, r9
cmp rdx, r8
jbe 0x203535cd
nop
mov r8, qword [rcx - 8]
cmp byte [0x205ec0d0], 0
jne 0x203535b0
movabs rdx, 0x1ff2ea420a989381
mov rsi, qword [rbp + 0x60]
xor rsi, rdx
movabs rdx, 0xa1c0ddd2a1c0ddd5
mov r11, qword [rbp + 0x80]
xor rdx, r11
movabs r9, 0x24e9d83bd8eaa18b
mov r10, qword [rbp + 0x78]
xor r10, r9
add r10, rdx
movabs rdx, 0x24c73caf5676c7e
xor rdx, r11
movabs r9, 0x8eeee1ac87155e74
xor r9, r11
add r9, rsi
add r9, rdx
add r10, rcx
add r10, r9
sub r10, r8
add r10, 2
movabs rcx, 0x5e3f2228e3f220d
mov rdx, qword [rbp + 0x68]
xor rdx, rcx
cmp r10, rdx
jae 0x20353609
movabs rcx, 0x5e3f222d5e3f2205
mov rdx, qword [rbp + 0x80]
xor rdx, rcx
add rax, rdx
mov rdx, rax
mov rcx, r8
nop
mov r8, qword [0x205c32a8]
mov eax, dword [0x205c3258]
sub eax, dword [rbp + 0x9c]
cdqe
add rax, r8
call qword [case.0x200c66ec.0]
movzx eax, byte [rbp + 0x9b]
and al, 1
add rsp, 0x128
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
call fcn.200782d0
call fcn.200782d0
int3