Function at 0x20068040
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push rsi
push rdi
push rbx
sub rsp, 0x28
lea rbp, [rsp + 0x20]
mov qword [rbp], 0xfffffffffffffffe
mov rsi, rcx
call fcn.203649b0
mov rax, qword [rsi + 0x468]
movabs r14, 0x243c83c7e537fbb9
cmp rax, 0x10
jb 0x2006810b
xor ecx, ecx
test cl, cl
je 0x20068084
jmp 0x200680a2
mov ecx, 0xf3dea18
add ecx, dword [0x205338c8]
lea rdx, [fcn.20068040]
add edx, edx
add edx, 0x46a0
test edx, ecx
je 0x200680d1
mov ecx, 0xf3dea18
lea rdx, [fcn.20068040]
add edx, edx
add edx, 0x32e0
nop word cs:[rax + rax]
mov r8d, dword [0x205338c8]
add r8d, ecx
test edx, r8d
jne 0x200680c0
jmp 0x20068084
mov rcx, qword [rsi + 0x450]
lea rdx, [rax + 1]
mov r8, qword [0x205338c0]
add r8, r14
cmp rdx, r8
jbe 0x20068106
mov r8, qword [rcx - 8]
sub rcx, r8
add rcx, 0xfffffffffffffff8
cmp rcx, 0x20
jae 0x2006815e
add rax, 0x28
mov rdx, rax
mov rcx, r8
call fcn.2008bfb0
mov qword [rsi + 0x460], 0
mov qword [rsi + 0x468], 0xf
mov byte [rsi + 0x450], 0
mov rax, qword [rsi + 0x418]
cmp rax, 0x10
jb 0x200681db
mov rcx, qword [rsi + 0x400]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x200681d6
mov edx, dword [0x205b3514]
cmp edx, 0x51
jle 0x20068163
jmp 0x2006817b
call fcn.20407a4c
mov r8, qword [rcx - 8]
mov edx, dword [0x205b3510]
lea r9d, [rdx - 1]
imul r9d, edx
test r9b, 1
je 0x200681a4
mov edx, 0xf3dea17
mov r8d, dword [0x205b3510]
lea r9d, [r8 - 1]
imul r9d, r8d
and r9d, 1
mov r8d, dword [0x205338c8]
add r8d, edx
cmp r9d, r8d
jne 0x20068180
jmp 0x20068163
mov rdx, rcx
xor rdx, 0xfffffffffffffff8
add rcx, rcx
and rcx, 0xfffffffffffffff0
mov r9, rdx
xor r9, rcx
and rcx, rdx
lea rcx, [r9 + rcx*2]
sub rcx, r8
cmp rcx, 0x20
jae 0x2006848a
add rax, 0x28
mov rdx, rax
mov rcx, r8
call fcn.2008bfb0
mov qword [rsi + 0x410], 0
mov qword [rsi + 0x418], 0xf
mov byte [rsi + 0x400], 0
mov rax, qword [rsi + 0x298]
cmp rax, 0x10
jb 0x20068269
mov rdi, qword [rsi + 0x280]
lea rbx, [rax + 1]
cmp rbx, 0x1000
jb 0x20068248
mov rcx, qword [rdi - 8]
add rdi, 0xfffffffffffffff8
sub rdi, rcx
movabs rdx, 0x243c83c7e537ebda
add rdx, qword [0x205338c0]
cmp rdi, rdx
jae 0x2006848f
add rax, 0x28
mov rbx, rax
mov rdi, rcx
mov eax, dword [0x205b3514]
cmp eax, 0x16
jle 0x2006825e
mov rcx, rdi
mov rdx, rbx
call fcn.2008bfb0
mov rcx, rdi
mov rdx, rbx
call fcn.2008bfb0
mov qword [rsi + 0x290], 0
movabs r15, 0x243c83c7e537ebc9
mov rax, qword [0x205338c0]
add rax, r15
mov qword [rsi + 0x298], rax
mov byte [rsi + 0x280], 0
mov r8, qword [rsi + 0x270]
cmp r8, 0x10
jb 0x200683a4
lea rax, [r8 + 1]
mov edx, 0xf3dea18
lea rcx, [fcn.20068040]
lea r9d, [rcx + rcx]
add r9d, 0xd20
nop word cs:[rax + rax]
mov rcx, qword [rsi + 0x258]
mov r10d, dword [0x205b3514]
cmp r10d, 0x18
jl 0x20068304
nop word cs:[rax + rax]
mov ecx, dword [0x205338c8]
add ecx, edx
xor ecx, r9d
not ecx
test ecx, r9d
jne 0x200682f0
jmp 0x200682d0
cmp rax, 0x1000
jb 0x20068394
mov r9, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r9
mov rax, qword [0x205338c0]
movabs rdx, 0x243c83c7e537ebda
xor rdx, rax
movabs r10, 0x5bc37c381ac81425
xor r10, rax
and r10, rax
lea rax, [rdx + r10*2]
cmp rcx, rax
jae 0x20068494
add r8, 0x28
mov ecx, dword [0x205b3510]
lea eax, [rcx - 1]
imul eax, ecx
mov ecx, dword [0x205338c8]
mov edx, ecx
xor edx, 0xf3dea19
and ecx, 0xf3dea19
lea ecx, [rdx + rcx*2]
xor edx, edx
div ecx
test edx, edx
jne 0x20068386
mov eax, dword [0x205b3514]
cmp eax, 0x45
jl 0x20068399
cmp dword [0x205338c8], 0xf0c215e9
jne 0x20068350
jmp 0x2006837b
mov r8, rax
jmp 0x2006839c
mov rcx, r9
mov rdx, r8
call fcn.2008bfb0
mov qword [rsi + 0x268], 0
mov qword [rsi + 0x270], 0xf
mov byte [rsi + 0x258], 0
mov rax, qword [rsi + 0x248]
mov rcx, qword [0x205338c0]
mov rdx, rcx
not rdx
movabs r8, 0xdbc37c381ac81436
and r8, rcx
movabs r9, 0x5bc37c381ac81436
and r9, rdx
and rdx, r15
or rdx, r8
xor rcx, r15
or r9, rcx
not r9
add r9, r9
mov rcx, rdx
xor rcx, r9
and r9, rdx
lea rcx, [rcx + r9*2]
cmp rax, rcx
jbe 0x200684d7
mov rdi, qword [rsi + 0x230]
mov rcx, rax
xor rcx, 1
mov edx, eax
and edx, 1
lea rbx, [rcx + rdx*2]
cmp rbx, 0x1000
jb 0x2006847d
mov rcx, qword [rdi - 8]
add rdi, 0xfffffffffffffff8
sub rdi, rcx
movabs rdx, 0x1bcffe8af65c5e30
add rdx, rdi
movabs r8, 0xe430017509a3a1d0
xor r8, rdx
movabs r9, 0x6430017509a3a1d0
and r9, rdx
lea rdx, [r8 + r9*2]
cmp rdx, 0x20
jae 0x20068499
add rax, 0x28
mov rbx, rax
mov rdi, rcx
mov eax, dword [0x205b3514]
cmp eax, 0x15
jle 0x2006849e
jmp 0x200684ca
call fcn.20407a4c
call fcn.20407a4c
call fcn.20407a4c
call fcn.20407a4c
mov rcx, rdi
mov rdx, rbx
call fcn.2008bfb0
mov eax, dword [0x205b3514]
mov ecx, dword [0x205338c8]
mov edx, ecx
xor edx, 0xf3dea53
and ecx, 0xf3dea53
lea ecx, [rdx + rcx*2]
cmp eax, ecx
jl 0x200684d7
mov rcx, rdi
mov rdx, rbx
call fcn.2008bfb0
jmp 0x2006849e
mov qword [rsi + 0x240], 0
mov qword [rsi + 0x248], 0xf
mov byte [rsi + 0x230], 0
mov rax, qword [rsi + 0x220]
cmp rax, 0x10
jb 0x20068588
mov rcx, qword [rsi + 0x208]
movabs rdx, 0xa03458ebbd4ae01b
xor rdx, rax
movabs r8, 0x203458ebbd4ae01b
and r8, rax
lea r8, [rdx + r8*2]
movabs rdx, 0x5fcba71442b51fe6
add rdx, r8
cmp rdx, 0x1000
jb 0x20068583
mov r8, qword [rcx - 8]
sub rcx, r8
add rcx, 0xfffffffffffffff8
cmp rcx, 0x20
jae 0x20068639
movabs rcx, 0xc5533dba2f664d6a
xor rcx, rax
movabs rdx, 0x45533dba2f664d6a
and rdx, rax
lea rax, [rcx + rdx*2]
movabs rdx, 0x3aacc245d099b2be
add rdx, rax
mov rcx, r8
call fcn.2008bfb0
mov qword [rsi + 0x218], 0
mov qword [rsi + 0x220], 0xf
mov byte [rsi + 0x208], 0
mov rax, qword [rsi + 0x1f8]
mov rcx, qword [0x205338c0]
add rcx, r15
cmp rax, rcx
jbe 0x20068693
mov rdi, qword [rsi + 0x1e0]
lea rbx, [rax + 1]
cmp rbx, 0x1000
jb 0x2006862c
mov rcx, qword [rdi - 8]
add rdi, qword [0x205338c0]
sub rdi, rcx
movabs rdx, 0x243c83c7e537ebb2
add rdx, rdi
cmp rdx, 0x20
jae 0x2006863e
mov edx, dword [0x205b3514]
cmp edx, 0x11
nop dword [rax]
mov edx, dword [0x205b3510]
lea r8d, [rdx - 1]
imul r8d, edx
and r8d, 1
mov edx, 0xf3dea17
add edx, dword [0x205338c8]
cmp r8d, edx
jne 0x20068600
add rax, 0x28
mov rbx, rax
mov rdi, rcx
mov eax, dword [0x205b3514]
cmp eax, 0xc
jg 0x20068670
jmp 0x20068643
call fcn.20407a4c
call fcn.20407a4c
mov rcx, rdi
mov rdx, rbx
call fcn.2008bfb0
mov eax, dword [0x205b3514]
mov ecx, 0xf3dea67
add ecx, dword [0x205338c8]
cmp eax, ecx
jl 0x20068693
nop word cs:[rax + rax]
mov rcx, rdi
mov rdx, rbx
call fcn.2008bfb0
mov eax, dword [0x205b3510]
mov ecx, eax
sub ecx, dword [0x205338c8]
imul ecx, eax
test cl, 1
jne 0x20068670
jmp 0x20068643
mov ecx, 0xf3dea17
nop dword [rax + rax]
mov qword [rsi + 0x1f0], 0
mov qword [rsi + 0x1f8], 0xf
mov byte [rsi + 0x1e0], 0
mov rax, qword [rsi + 0x1d0]
mov edx, dword [0x205b3510]
lea r8d, [rdx + 1]
imul r8d, edx
and r8d, 1
mov edx, dword [0x205338c8]
add edx, ecx
cmp r8d, edx
je 0x2006870b
mov qword [rsi + 0x1f0], 0
mov qword [rsi + 0x1f8], 0xf
mov byte [rsi + 0x1e0], 0
mov eax, dword [0x205b3514]
cmp eax, 0x38
jmp 0x200686a0
cmp rax, 0x10
jb 0x200687d0
mov rcx, qword [rsi + 0x1b8]
mov rdx, rax
not rdx
movabs r8, 0x7ffffffffffffffe
and r8, rdx
and edx, 1
mov r9, rax
and r9, 0xfffffffffffffffe
or r9, rdx
mov rdx, rax
xor rdx, 1
or r8, rdx
not r8
add r8, r8
mov rdx, r9
xor rdx, r8
and r8, r9
lea rdx, [rdx + r8*2]
cmp rdx, 0x1000
jb 0x200687cb
movabs rdx, 0x243c83c7e537ebb2
mov r9b, 1
nop
cmp dword [0x205338c8], 0xf0c215e9
jne 0x20068797
mov r8, qword [rcx - 8]
mov r10, qword [0x205338c0]
add r10, rdx
mov r11d, dword [0x205b3514]
cmp r11d, 0x55
jle 0x2006879e
test r9b, r9b
je 0x20068770
jmp 0x2006877c
mov rdx, r10
xor rdx, r10
not rdx
and rdx, rcx
xor rdx, r10
and rcx, r10
lea rcx, [rdx + rcx*2]
sub rcx, r8
cmp rcx, 0x20
jae 0x20068a40
add rax, 0x28
mov rdx, rax
mov rcx, r8
call fcn.2008bfb0
movabs rax, 0x243c83c7e537ebba
add rax, qword [0x205338c0]
mov qword [rsi + 0x1c8], rax
mov qword [rsi + 0x1d0], 0xf
mov byte [rsi + 0x1b8], 0
mov rax, qword [rsi + 0x1a8]
mov rcx, qword [0x205338c0]
movabs rdx, 0x8712b131bc0ef362
xor rdx, rcx
movabs r8, 0x712b131bc0ef362
and r8, rcx
lea rcx, [rdx + r8*2]
movabs rdx, 0x9d29d2962928f867
add rdx, rcx
cmp rax, rdx
jbe 0x2006888d
mov rcx, qword [rsi + 0x190]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x20068888
mov r8, qword [rcx - 8]
sub rcx, r8
add rcx, 0xfffffffffffffff8
cmp rcx, 0x20
jae 0x20068a45
movabs rcx, 0xaf1ebc3738d54acb
add rax, rcx
movabs rcx, 0x50e143c8c72ab55d
mov rdx, rax
xor rdx, rcx
and rax, rcx
lea rdx, [rdx + rax*2]
mov rcx, r8
call fcn.2008bfb0
mov qword [rsi + 0x1a0], 0
mov qword [rsi + 0x1a8], 0xf
mov byte [rsi + 0x190], 0
mov rax, qword [rsi + 0x180]
cmp rax, 0x10
jb 0x20068910
mov rcx, qword [rsi + 0x168]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x2006890b
mov r8, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r8
cmp rcx, 0x20
jae 0x20068a4a
movabs rcx, 0x250efa5805c4d2cc
add rax, rcx
mov rcx, rax
xor rcx, 0x28
and eax, 0x28
lea rax, [rcx + rax*2]
movabs rdx, 0xdaf105a7fa3b2d34
add rdx, rax
mov rcx, r8
call fcn.2008bfb0
mov qword [rsi + 0x178], 0
mov rax, qword [0x205338c0]
add rax, r15
mov qword [rsi + 0x180], rax
mov byte [rsi + 0x168], 0
mov rax, qword [rsi + 0x158]
cmp rax, 0x10
jb 0x200689aa
mov rcx, qword [rsi + 0x140]
mov rdx, rax
xor rdx, 1
mov r8d, eax
and r8d, 1
lea rdx, [rdx + r8*2]
mov r8, qword [0x205b3580]
mov r9, r8
xor r9, rdx
and r8, rdx
lea rdx, [r9 + r8*2]
cmp rdx, 0x1000
jb 0x200689a5
mov r8, qword [rcx - 8]
sub rcx, r8
add rcx, 0xfffffffffffffff8
movabs rdx, 0x243c83c7e537ebda
add rdx, qword [0x205338c0]
cmp rcx, rdx
jae 0x20068a8d
add rax, 0x28
mov rdx, rax
mov rcx, r8
call fcn.2008bfb0
mov qword [rsi + 0x150], 0
mov rax, qword [0x205338c0]
add rax, r15
mov qword [rsi + 0x158], rax
mov byte [rsi + 0x140], 0
mov rax, qword [rsi + 0x130]
cmp rax, 0x10
jb 0x20068ac8
mov rdi, qword [rsi + 0x118]
lea rbx, [rax + 1]
cmp rbx, 0x1000
jb 0x20068a33
mov rcx, qword [rdi - 8]
mov rdx, qword [0x205338c0]
add rdi, rdx
sub rdi, rcx
movabs r8, 0x243c83c7e537ebb2
add r8, rdi
movabs r9, 0x243c83c7e537ebda
add r9, rdx
cmp r8, r9
jae 0x20068a92
mov rdx, rax
xor rdx, 0x28
and eax, 0x28
lea rbx, [rdx + rax*2]
mov rdi, rcx
mov eax, dword [0x205b3514]
cmp eax, 0x2f
jg 0x20068ab0
jmp 0x20068a97
call fcn.20407a4c
call fcn.20407a4c
mov eax, 0xf3dea17
mov ecx, dword [0x205b3510]
lea edx, [rcx - 1]
imul edx, ecx
and edx, 1
mov ecx, dword [0x205338c8]
add ecx, eax
cmp edx, ecx
jne 0x20068a7b
mov ecx, dword [0x205b3510]
lea edx, [rcx - 1]
imul edx, ecx
test dl, 1
je 0x20068a88
mov ecx, dword [0x205b3514]
cmp ecx, 0x3a
jge 0x20068a4f
jmp 0x20068a6a
call fcn.20407a4c
call fcn.20407a4c
call fcn.20407a4c
mov rcx, rdi
mov rdx, rbx
call fcn.2008bfb0
mov eax, dword [0x205b3514]
cmp eax, 0x15
jl 0x20068ac8
nop dword [rax]
mov rcx, rdi
mov rdx, rbx
call fcn.2008bfb0
mov eax, dword [0x205b3514]
cmp eax, 0x4d
jge 0x20068ab0
jmp 0x20068a97
mov qword [rsi + 0x128], 0
mov qword [rsi + 0x130], 0xf
mov byte [rsi + 0x118], 0
mov rax, qword [rsi + 0x108]
cmp rax, 0x10
jb 0x20068b3a
mov rcx, qword [rsi + 0xf0]
mov rdx, rax
xor rdx, 1
mov r8d, eax
and r8d, 1
lea rdx, [rdx + r8*2]
mov r8, qword [0x205338c0]
add r8, r14
cmp rdx, r8
jbe 0x20068b35
mov r8, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r8
cmp rcx, 0x20
jae 0x20068b57
add rax, 0x28
mov rdx, rax
mov rcx, r8
call fcn.2008bfb0
mov eax, dword [0x205b3510]
mov ecx, 0xf0c215e8
sub ecx, dword [0x205338c8]
xor ecx, eax
imul ecx, eax
test cl, 1
jne 0x20068ba0
jmp 0x20068b5c
call fcn.20407a4c
mov qword [rsi + 0x100], 0
mov qword [rsi + 0x108], 0xf
mov byte [rsi + 0xf0], 0
mov rax, qword [rsi + 0xe0]
mov rcx, qword [0x205338c0]
add rcx, r15
mov edx, dword [0x205b3514]
cmp edx, 0x51
jl 0x20068bd0
nop word cs:[rax + rax]
mov qword [rsi + 0x100], 0
mov rax, qword [0x205338c0]
add rax, r15
mov qword [rsi + 0x108], rax
mov byte [rsi + 0xf0], 0
mov eax, dword [0x205b3514]
cmp eax, 0x13
jge 0x20068ba0
jmp 0x20068b5c
cmp rax, rcx
jbe 0x20068c26
mov rcx, qword [rsi + 0xc8]
cmp byte [0x205b35a8], 0
jne 0x20068bf2
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x20068c21
mov r8, qword [rcx - 8]
sub rcx, r8
add rcx, 0xfffffffffffffff8
movabs rdx, 0x243c83c7e537ebda
add rdx, qword [0x205338c0]
cmp rcx, rdx
jae 0x20068d48
add rax, 0x28
mov rdx, rax
mov rcx, r8
call fcn.2008bfb0
mov qword [rsi + 0xd8], 0
mov qword [rsi + 0xe0], 0xf
mov byte [rsi + 0xc8], 0
mov rax, qword [rsi + 0x70]
cmp rax, 0x10
jb 0x20068cd9
mov rcx, qword [rsi + 0x58]
mov r8, qword [0x205338c0]
add r8, rax
movabs rdx, 0x243c83c7e537ebbb
add rdx, r8
cmp rdx, 0x1000
jb 0x20068cd4
mov dl, 1
nop word [rax + rax]
mov r8d, dword [0x205b3510]
mov r9d, 0x82802cbd
sub r9d, r8d
imul r9d, r8d
test r9b, 1
jne 0x20068cb3
mov r8, qword [rcx - 8]
mov r9d, dword [0x205b3510]
lea r10d, [r9 - 1]
imul r10d, r9d
test r10b, 1
je 0x20068cb9
test dl, dl
je 0x20068c80
jmp 0x20068c9a
sub rcx, r8
add rcx, 0xfffffffffffffff8
cmp rcx, 0x20
jae 0x20068d4d
add rax, 0x28
mov rdx, rax
mov rcx, r8
call fcn.2008bfb0
mov qword [rsi + 0x68], 0
add r15, qword [0x205338c0]
mov qword [rsi + 0x70], r15
mov byte [rsi + 0x58], 0
mov rax, qword [rsi + 0x28]
cmp rax, 0x10
jb 0x20068d3b
mov rcx, qword [rsi + 0x10]
lea rdx, [rax + 1]
mov r8, qword [0x205338c0]
mov r9, r8
xor r9, r14
and r8, r14
lea r8, [r9 + r8*2]
cmp rdx, r8
jbe 0x20068d36
mov r8, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r8
cmp rcx, 0x20
jae 0x20068d52
add rax, 0x28
mov rdx, rax
mov rcx, r8
call fcn.2008bfb0
mov eax, dword [0x205b3514]
cmp eax, 0x48
jle 0x20068d57
jmp 0x20068d7c
call fcn.20407a4c
call fcn.20407a4c
call fcn.20407a4c
mov qword [rsi + 0x20], 0
mov qword [rsi + 0x28], 0xf
movzx eax, byte [0x205338cc]
add al, 0x76
mov byte [rsi + 0x10], al
cmp byte [0x205b35bc], 0
je 0x20068d92
mov qword [rsi + 0x20], 0
mov qword [rsi + 0x28], 0xf
mov byte [rsi + 0x10], 0
jmp 0x20068d57
add rsp, 0x28
pop rbx
pop rdi
pop rsi
pop r14
pop r15
pop rbp
ret