Function at 0x140085040
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.1403819b0
mov rax, qword [rsi + 0x468]
movabs r14, 0x243c83c7e537fbb9
cmp rax, 0x10
jb 0x14008510b
xor ecx, ecx
test cl, cl
je 0x140085084
jmp 0x1400850a2
mov ecx, 0xf3dea18
add ecx, dword [0x1405508c8]
lea rdx, [fcn.140085040]
add edx, edx
add edx, 0x46a0
test edx, ecx
je 0x1400850d1
mov ecx, 0xf3dea18
lea rdx, [fcn.140085040]
add edx, edx
add edx, 0x32e0
nop word cs:[rax + rax]
mov r8d, dword [0x1405508c8]
add r8d, ecx
test edx, r8d
jne 0x1400850c0
jmp 0x140085084
mov rcx, qword [rsi + 0x450]
lea rdx, [rax + 1]
mov r8, qword [0x1405508c0]
add r8, r14
cmp rdx, r8
jbe 0x140085106
mov r8, qword [rcx - 8]
sub rcx, r8
add rcx, 0xfffffffffffffff8
cmp rcx, 0x20
jae 0x14008515e
add rax, 0x28
mov rdx, rax
mov rcx, r8
call fcn.1400a8fb0
mov qword [rsi + 0x460], 0
mov qword [rsi + 0x468], 0xf
mov byte [rsi + 0x450], 0
mov rax, qword [rsi + 0x418]
cmp rax, 0x10
jb 0x1400851db
mov rcx, qword [rsi + 0x400]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x1400851d6
mov edx, dword [0x1405d0514]
cmp edx, 0x51
jle 0x140085163
jmp 0x14008517b
call fcn.140424a4c
mov r8, qword [rcx - 8]
mov edx, dword [0x1405d0510]
lea r9d, [rdx - 1]
imul r9d, edx
test r9b, 1
je 0x1400851a4
mov edx, 0xf3dea17
mov r8d, dword [0x1405d0510]
lea r9d, [r8 - 1]
imul r9d, r8d
and r9d, 1
mov r8d, dword [0x1405508c8]
add r8d, edx
cmp r9d, r8d
jne 0x140085180
jmp 0x140085163
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 0x14008548a
add rax, 0x28
mov rdx, rax
mov rcx, r8
call fcn.1400a8fb0
mov qword [rsi + 0x410], 0
mov qword [rsi + 0x418], 0xf
mov byte [rsi + 0x400], 0
mov rax, qword [rsi + 0x298]
cmp rax, 0x10
jb 0x140085269
mov rdi, qword [rsi + 0x280]
lea rbx, [rax + 1]
cmp rbx, 0x1000
jb 0x140085248
mov rcx, qword [rdi - 8]
add rdi, 0xfffffffffffffff8
sub rdi, rcx
movabs rdx, 0x243c83c7e537ebda
add rdx, qword [0x1405508c0]
cmp rdi, rdx
jae 0x14008548f
add rax, 0x28
mov rbx, rax
mov rdi, rcx
mov eax, dword [0x1405d0514]
cmp eax, 0x16
jle 0x14008525e
mov rcx, rdi
mov rdx, rbx
call fcn.1400a8fb0
mov rcx, rdi
mov rdx, rbx
call fcn.1400a8fb0
mov qword [rsi + 0x290], 0
movabs r15, 0x243c83c7e537ebc9
mov rax, qword [0x1405508c0]
add rax, r15
mov qword [rsi + 0x298], rax
mov byte [rsi + 0x280], 0
mov r8, qword [rsi + 0x270]
cmp r8, 0x10
jb 0x1400853a4
lea rax, [r8 + 1]
mov edx, 0xf3dea18
lea rcx, [fcn.140085040]
lea r9d, [rcx + rcx]
add r9d, 0xd20
nop word cs:[rax + rax]
mov rcx, qword [rsi + 0x258]
mov r10d, dword [0x1405d0514]
cmp r10d, 0x18
jl 0x140085304
nop word cs:[rax + rax]
mov ecx, dword [0x1405508c8]
add ecx, edx
xor ecx, r9d
not ecx
test ecx, r9d
jne 0x1400852f0
jmp 0x1400852d0
cmp rax, 0x1000
jb 0x140085394
mov r9, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r9
mov rax, qword [0x1405508c0]
movabs rdx, 0x243c83c7e537ebda
xor rdx, rax
movabs r10, 0x5bc37c381ac81425
xor r10, rax
and r10, rax
lea rax, [rdx + r10*2]
cmp rcx, rax
jae 0x140085494
add r8, 0x28
mov ecx, dword [0x1405d0510]
lea eax, [rcx - 1]
imul eax, ecx
mov ecx, dword [0x1405508c8]
mov edx, ecx
xor edx, 0xf3dea19
and ecx, 0xf3dea19
lea ecx, [rdx + rcx*2]
xor edx, edx
div ecx
test edx, edx
jne 0x140085386
mov eax, dword [0x1405d0514]
cmp eax, 0x45
jl 0x140085399
cmp dword [0x1405508c8], 0xf0c215e9
jne 0x140085350
jmp 0x14008537b
mov r8, rax
jmp 0x14008539c
mov rcx, r9
mov rdx, r8
call fcn.1400a8fb0
mov qword [rsi + 0x268], 0
mov qword [rsi + 0x270], 0xf
mov byte [rsi + 0x258], 0
mov rax, qword [rsi + 0x248]
mov rcx, qword [0x1405508c0]
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 0x1400854d7
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 0x14008547d
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 0x140085499
add rax, 0x28
mov rbx, rax
mov rdi, rcx
mov eax, dword [0x1405d0514]
cmp eax, 0x15
jle 0x14008549e
jmp 0x1400854ca
call fcn.140424a4c
call fcn.140424a4c
call fcn.140424a4c
call fcn.140424a4c
mov rcx, rdi
mov rdx, rbx
call fcn.1400a8fb0
mov eax, dword [0x1405d0514]
mov ecx, dword [0x1405508c8]
mov edx, ecx
xor edx, 0xf3dea53
and ecx, 0xf3dea53
lea ecx, [rdx + rcx*2]
cmp eax, ecx
jl 0x1400854d7
mov rcx, rdi
mov rdx, rbx
call fcn.1400a8fb0
jmp 0x14008549e
mov qword [rsi + 0x240], 0
mov qword [rsi + 0x248], 0xf
mov byte [rsi + 0x230], 0
mov rax, qword [rsi + 0x220]
cmp rax, 0x10
jb 0x140085588
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 0x140085583
mov r8, qword [rcx - 8]
sub rcx, r8
add rcx, 0xfffffffffffffff8
cmp rcx, 0x20
jae 0x140085639
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.1400a8fb0
mov qword [rsi + 0x218], 0
mov qword [rsi + 0x220], 0xf
mov byte [rsi + 0x208], 0
mov rax, qword [rsi + 0x1f8]
mov rcx, qword [0x1405508c0]
add rcx, r15
cmp rax, rcx
jbe 0x140085693
mov rdi, qword [rsi + 0x1e0]
lea rbx, [rax + 1]
cmp rbx, 0x1000
jb 0x14008562c
mov rcx, qword [rdi - 8]
add rdi, qword [0x1405508c0]
sub rdi, rcx
movabs rdx, 0x243c83c7e537ebb2
add rdx, rdi
cmp rdx, 0x20
jae 0x14008563e
mov edx, dword [0x1405d0514]
cmp edx, 0x11
nop dword [rax]
mov edx, dword [0x1405d0510]
lea r8d, [rdx - 1]
imul r8d, edx
and r8d, 1
mov edx, 0xf3dea17
add edx, dword [0x1405508c8]
cmp r8d, edx
jne 0x140085600
add rax, 0x28
mov rbx, rax
mov rdi, rcx
mov eax, dword [0x1405d0514]
cmp eax, 0xc
jg 0x140085670
jmp 0x140085643
call fcn.140424a4c
call fcn.140424a4c
mov rcx, rdi
mov rdx, rbx
call fcn.1400a8fb0
mov eax, dword [0x1405d0514]
mov ecx, 0xf3dea67
add ecx, dword [0x1405508c8]
cmp eax, ecx
jl 0x140085693
nop word cs:[rax + rax]
mov rcx, rdi
mov rdx, rbx
call fcn.1400a8fb0
mov eax, dword [0x1405d0510]
mov ecx, eax
sub ecx, dword [0x1405508c8]
imul ecx, eax
test cl, 1
jne 0x140085670
jmp 0x140085643
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 [0x1405d0510]
lea r8d, [rdx + 1]
imul r8d, edx
and r8d, 1
mov edx, dword [0x1405508c8]
add edx, ecx
cmp r8d, edx
je 0x14008570b
mov qword [rsi + 0x1f0], 0
mov qword [rsi + 0x1f8], 0xf
mov byte [rsi + 0x1e0], 0
mov eax, dword [0x1405d0514]
cmp eax, 0x38
jmp 0x1400856a0
cmp rax, 0x10
jb 0x1400857d0
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 0x1400857cb
movabs rdx, 0x243c83c7e537ebb2
mov r9b, 1
nop
cmp dword [0x1405508c8], 0xf0c215e9
jne 0x140085797
mov r8, qword [rcx - 8]
mov r10, qword [0x1405508c0]
add r10, rdx
mov r11d, dword [0x1405d0514]
cmp r11d, 0x55
jle 0x14008579e
test r9b, r9b
je 0x140085770
jmp 0x14008577c
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 0x140085a40
add rax, 0x28
mov rdx, rax
mov rcx, r8
call fcn.1400a8fb0
movabs rax, 0x243c83c7e537ebba
add rax, qword [0x1405508c0]
mov qword [rsi + 0x1c8], rax
mov qword [rsi + 0x1d0], 0xf
mov byte [rsi + 0x1b8], 0
mov rax, qword [rsi + 0x1a8]
mov rcx, qword [0x1405508c0]
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 0x14008588d
mov rcx, qword [rsi + 0x190]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x140085888
mov r8, qword [rcx - 8]
sub rcx, r8
add rcx, 0xfffffffffffffff8
cmp rcx, 0x20
jae 0x140085a45
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.1400a8fb0
mov qword [rsi + 0x1a0], 0
mov qword [rsi + 0x1a8], 0xf
mov byte [rsi + 0x190], 0
mov rax, qword [rsi + 0x180]
cmp rax, 0x10
jb 0x140085910
mov rcx, qword [rsi + 0x168]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x14008590b
mov r8, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r8
cmp rcx, 0x20
jae 0x140085a4a
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.1400a8fb0
mov qword [rsi + 0x178], 0
mov rax, qword [0x1405508c0]
add rax, r15
mov qword [rsi + 0x180], rax
mov byte [rsi + 0x168], 0
mov rax, qword [rsi + 0x158]
cmp rax, 0x10
jb 0x1400859aa
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 [0x1405d0580]
mov r9, r8
xor r9, rdx
and r8, rdx
lea rdx, [r9 + r8*2]
cmp rdx, 0x1000
jb 0x1400859a5
mov r8, qword [rcx - 8]
sub rcx, r8
add rcx, 0xfffffffffffffff8
movabs rdx, 0x243c83c7e537ebda
add rdx, qword [0x1405508c0]
cmp rcx, rdx
jae 0x140085a8d
add rax, 0x28
mov rdx, rax
mov rcx, r8
call fcn.1400a8fb0
mov qword [rsi + 0x150], 0
mov rax, qword [0x1405508c0]
add rax, r15
mov qword [rsi + 0x158], rax
mov byte [rsi + 0x140], 0
mov rax, qword [rsi + 0x130]
cmp rax, 0x10
jb 0x140085ac8
mov rdi, qword [rsi + 0x118]
lea rbx, [rax + 1]
cmp rbx, 0x1000
jb 0x140085a33
mov rcx, qword [rdi - 8]
mov rdx, qword [0x1405508c0]
add rdi, rdx
sub rdi, rcx
movabs r8, 0x243c83c7e537ebb2
add r8, rdi
movabs r9, 0x243c83c7e537ebda
add r9, rdx
cmp r8, r9
jae 0x140085a92
mov rdx, rax
xor rdx, 0x28
and eax, 0x28
lea rbx, [rdx + rax*2]
mov rdi, rcx
mov eax, dword [0x1405d0514]
cmp eax, 0x2f
jg 0x140085ab0
jmp 0x140085a97
call fcn.140424a4c
call fcn.140424a4c
mov eax, 0xf3dea17
mov ecx, dword [0x1405d0510]
lea edx, [rcx - 1]
imul edx, ecx
and edx, 1
mov ecx, dword [0x1405508c8]
add ecx, eax
cmp edx, ecx
jne 0x140085a7b
mov ecx, dword [0x1405d0510]
lea edx, [rcx - 1]
imul edx, ecx
test dl, 1
je 0x140085a88
mov ecx, dword [0x1405d0514]
cmp ecx, 0x3a
jge 0x140085a4f
jmp 0x140085a6a
call fcn.140424a4c
call fcn.140424a4c
call fcn.140424a4c
mov rcx, rdi
mov rdx, rbx
call fcn.1400a8fb0
mov eax, dword [0x1405d0514]
cmp eax, 0x15
jl 0x140085ac8
nop dword [rax]
mov rcx, rdi
mov rdx, rbx
call fcn.1400a8fb0
mov eax, dword [0x1405d0514]
cmp eax, 0x4d
jge 0x140085ab0
jmp 0x140085a97
mov qword [rsi + 0x128], 0
mov qword [rsi + 0x130], 0xf
mov byte [rsi + 0x118], 0
mov rax, qword [rsi + 0x108]
cmp rax, 0x10
jb 0x140085b3a
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 [0x1405508c0]
add r8, r14
cmp rdx, r8
jbe 0x140085b35
mov r8, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r8
cmp rcx, 0x20
jae 0x140085b57
add rax, 0x28
mov rdx, rax
mov rcx, r8
call fcn.1400a8fb0
mov eax, dword [0x1405d0510]
mov ecx, 0xf0c215e8
sub ecx, dword [0x1405508c8]
xor ecx, eax
imul ecx, eax
test cl, 1
jne 0x140085ba0
jmp 0x140085b5c
call fcn.140424a4c
mov qword [rsi + 0x100], 0
mov qword [rsi + 0x108], 0xf
mov byte [rsi + 0xf0], 0
mov rax, qword [rsi + 0xe0]
mov rcx, qword [0x1405508c0]
add rcx, r15
mov edx, dword [0x1405d0514]
cmp edx, 0x51
jl 0x140085bd0
nop word cs:[rax + rax]
mov qword [rsi + 0x100], 0
mov rax, qword [0x1405508c0]
add rax, r15
mov qword [rsi + 0x108], rax
mov byte [rsi + 0xf0], 0
mov eax, dword [0x1405d0514]
cmp eax, 0x13
jge 0x140085ba0
jmp 0x140085b5c
cmp rax, rcx
jbe 0x140085c26
mov rcx, qword [rsi + 0xc8]
cmp byte [0x1405d05a8], 0
jne 0x140085bf2
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x140085c21
mov r8, qword [rcx - 8]
sub rcx, r8
add rcx, 0xfffffffffffffff8
movabs rdx, 0x243c83c7e537ebda
add rdx, qword [0x1405508c0]
cmp rcx, rdx
jae 0x140085d48
add rax, 0x28
mov rdx, rax
mov rcx, r8
call fcn.1400a8fb0
mov qword [rsi + 0xd8], 0
mov qword [rsi + 0xe0], 0xf
mov byte [rsi + 0xc8], 0
mov rax, qword [rsi + 0x70]
cmp rax, 0x10
jb 0x140085cd9
mov rcx, qword [rsi + 0x58]
mov r8, qword [0x1405508c0]
add r8, rax
movabs rdx, 0x243c83c7e537ebbb
add rdx, r8
cmp rdx, 0x1000
jb 0x140085cd4
mov dl, 1
nop word [rax + rax]
mov r8d, dword [0x1405d0510]
mov r9d, 0x82802cbd
sub r9d, r8d
imul r9d, r8d
test r9b, 1
jne 0x140085cb3
mov r8, qword [rcx - 8]
mov r9d, dword [0x1405d0510]
lea r10d, [r9 - 1]
imul r10d, r9d
test r10b, 1
je 0x140085cb9
test dl, dl
je 0x140085c80
jmp 0x140085c9a
sub rcx, r8
add rcx, 0xfffffffffffffff8
cmp rcx, 0x20
jae 0x140085d4d
add rax, 0x28
mov rdx, rax
mov rcx, r8
call fcn.1400a8fb0
mov qword [rsi + 0x68], 0
add r15, qword [0x1405508c0]
mov qword [rsi + 0x70], r15
mov byte [rsi + 0x58], 0
mov rax, qword [rsi + 0x28]
cmp rax, 0x10
jb 0x140085d3b
mov rcx, qword [rsi + 0x10]
lea rdx, [rax + 1]
mov r8, qword [0x1405508c0]
mov r9, r8
xor r9, r14
and r8, r14
lea r8, [r9 + r8*2]
cmp rdx, r8
jbe 0x140085d36
mov r8, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r8
cmp rcx, 0x20
jae 0x140085d52
add rax, 0x28
mov rdx, rax
mov rcx, r8
call fcn.1400a8fb0
mov eax, dword [0x1405d0514]
cmp eax, 0x48
jle 0x140085d57
jmp 0x140085d7c
call fcn.140424a4c
call fcn.140424a4c
call fcn.140424a4c
mov qword [rsi + 0x20], 0
mov qword [rsi + 0x28], 0xf
movzx eax, byte [0x1405508cc]
add al, 0x76
mov byte [rsi + 0x10], al
cmp byte [0x1405d05bc], 0
je 0x140085d92
mov qword [rsi + 0x20], 0
mov qword [rsi + 0x28], 0xf
mov byte [rsi + 0x10], 0
jmp 0x140085d57
add rsp, 0x28
pop rbx
pop rdi
pop rsi
pop r14
pop r15
pop rbp
ret