Function at 0x140253330
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push r12
push r14
push r15
sub rsp, 0x148
mov rdx, qword [rcx + 0x18]
mov rbx, rcx
shr rdx, 0x20
xor r11d, r11d
mov rbp, r8
mov ecx, r11d
mov r8d, dword [r8 + 0xc]
mov r10d, 1
cmp edx, dword [rbx + 0x18]
mov r14, r9
mov r9, qword [rsp + 0x1a0]
mov r12d, dword [rbp + 4]
setb cl
mov dword [rsp + 0x9c], ecx
mov ecx, dword [rbp + 8]
sub r12d, ecx
shl r10d, cl
cmp edx, dword [rbx + 0x18]
mov rdx, qword [rbx + 8]
mov dword [rsp + 0x98], r10d
mov r10d, dword [rbx + 0x18]
mov dword [rsp + 0xa0], r10d
mov qword [rsp + 0x30], rdx
mov dword [rsp + 0x54], r12d
jae 0x1402533e1
mov eax, dword [rbx + 0x1c]
mov r11, qword [rbx + 0x10]
mov qword [rsp + 0x68], rax
lea rcx, [r11 + rax]
mov qword [rsp + 0x60], rcx
lea rcx, [r10 + r11]
mov qword [rsp + 0xa8], rcx
jmp 0x1402533f3
mov dword [rsp + 0x68], r10d
mov qword [rsp + 0x60], r11
mov qword [rsp + 0xa8], r11
mov rax, r10
mov qword [rsp + 0xc0], r11
add rax, rdx
mov qword [rsp + 0x40], r8
mov qword [rsp + 0xb0], rax
lea rdx, [r14 + r9]
mov qword [rsp + 0xb8], rdx
lea r15, [rdx - 8]
mov qword [rsp + 0xf8], r15
lea rsi, [rbx + 0x40]
mov qword [rsp + 0xf0], rsi
cmp r9, r8
jae 0x14025344b
mov rax, r9
add rsp, 0x148
pop r15
pop r14
pop r12
pop rsi
pop rbp
pop rbx
ret
mov ecx, dword [rbp + 0x10]
mov eax, 0x40
cmp r8d, eax
mov qword [rsp + 0x140], rdi
mov r9d, 0xffffffff
cmovb eax, r8d
test ecx, ecx
je 0x140253485
cmp ecx, eax
ja 0x140253485
sub eax, ecx
mov edi, 1
shl rdi, cl
movzx ecx, al
dec rdi
shl rdi, cl
jmp 0x140253490
mov edi, 1
shl rdi, cl
dec rdi
lea r11, [r8 + r14]
mov qword [rsp + 0xe0], rdi
mov qword [rsp + 0x138], r13
mov qword [rsp + 0x90], r11
cmp r11, r15
jae 0x140253ec7
movabs rax, 0xc2b2ae3d27d4eb4f
lea rbp, str.ww__
mov qword [rsp + 0x58], rax
movabs rax, 0x27d4eb2f165667c5
mov qword [rsp + 0xe8], rax
nop dword [rax]
xor r10d, r10d
mov qword [rsp + 0x38], r9
xor r8d, r8d
mov dword [rsp + 0x1a0], r10d
mov rdx, r15
mov qword [rsp + 0x28], r8
sub rdx, r11
cmp rdx, 3
jbe 0x1402535fd
mov ecx, 3
nop dword [rax]
movzx eax, byte [r8 + r11]
inc r8
mov qword [rsp + 0x28], r8
mov rax, qword [rbp + rax*8]
lea r9, [rax + r9*2]
mov qword [rsp + 0x38], r9
test r9, rdi
jne 0x140253549
mov qword [rsi + r10*8], r8
inc r10d
mov dword [rsp + 0x1a0], r10d
cmp r10d, 0x40
je 0x14025363c
movzx eax, byte [r8 + r11]
inc r8
mov qword [rsp + 0x28], r8
mov rax, qword [rbp + rax*8]
lea r9, [rax + r9*2]
mov qword [rsp + 0x38], r9
test r9, rdi
jne 0x140253582
mov qword [rsi + r10*8], r8
inc r10d
mov dword [rsp + 0x1a0], r10d
cmp r10d, 0x40
je 0x14025363c
movzx eax, byte [r8 + r11]
inc r8
mov qword [rsp + 0x28], r8
mov rax, qword [rbp + rax*8]
lea r9, [rax + r9*2]
mov qword [rsp + 0x38], r9
test r9, rdi
jne 0x1402535bb
mov qword [rsi + r10*8], r8
inc r10d
mov dword [rsp + 0x1a0], r10d
cmp r10d, 0x40
je 0x14025363c
movzx eax, byte [r8 + r11]
add rcx, 4
inc r8
mov qword [rsp + 0x28], r8
mov rax, qword [rbp + rax*8]
lea r9, [rax + r9*2]
mov qword [rsp + 0x38], r9
test r9, rdi
jne 0x1402535f4
mov qword [rsi + r10*8], r8
inc r10d
mov dword [rsp + 0x1a0], r10d
cmp r10d, 0x40
je 0x14025363c
cmp rcx, rdx
jb 0x140253510
cmp r8, rdx
jae 0x14025363c
movzx eax, byte [r8 + r11]
inc r8
mov rax, qword [rbp + rax*8]
lea r9, [rax + r9*2]
test r9, rdi
jne 0x140253625
mov qword [rsi + r10*8], r8
inc r10d
cmp r10d, 0x40
je 0x14025362a
cmp r8, rdx
jb 0x140253602
mov qword [rsp + 0x38], r9
mov qword [rsp + 0x28], r8
mov dword [rsp + 0x1a0], r10d
xor r15d, r15d
test r10d, r10d
je 0x140253e91
mov r14, qword [rsp + 0x40]
mov ecx, r12d
mov r13, r14
mov r12d, 1
and r13d, 0x1f
shl r12d, cl
mov rbp, rsi
dec r12d
lea rsi, [rbx + 0x24c]
nop dword [rax]
mov rdi, r11
sub rdi, r14
add rdi, qword [rbp]
mov r8, rdi
cmp r14, 0x20
jb 0x1402537da
lea rcx, [rdi - 0x1f]
movabs rbx, 0x60ea27eeadc0b5d6
add rcx, r14
movabs r9, 0xc2b2ae3d27d4eb4f
xor r10d, r10d
movabs rdx, 0x9e3779b185ebca87
movabs r11, 0x61c8864e7a143579
nop dword [rax]
mov rax, qword [r8]
imul rax, qword [rsp + 0x58]
add rbx, rax
mov rax, qword [r8 + 8]
imul rax, qword [rsp + 0x58]
rol rbx, 0x1f
add r9, rax
mov rax, qword [r8 + 0x10]
imul rax, qword [rsp + 0x58]
imul rbx, rdx
add r10, rax
rol r9, 0x1f
mov rax, qword [r8 + 0x18]
add r8, 0x20
imul rax, qword [rsp + 0x58]
imul r9, rdx
add r11, rax
rol r10, 0x1f
rol r11, 0x1f
imul r11, rdx
imul r10, rdx
cmp r8, rcx
jb 0x1402536c0
mov rcx, rbx
movabs rax, 0xc2b2ae3d27d4eb4f
imul rcx, rax
mov rax, r10
rol rbx, 1
rol rax, 0xc
rol rcx, 0x1f
imul rcx, rdx
mov rdx, r11
rol rdx, 0x12
add rdx, rax
mov rax, r9
rol rax, 7
add rdx, rax
movabs rax, 0x9e3779b185ebca87
add rdx, rbx
movabs rbx, 0x7a1435883d4d519d
xor rdx, rcx
movabs rcx, 0xc2b2ae3d27d4eb4f
imul rdx, rax
imul r10, rcx
imul r9, rcx
imul r11, rcx
sub rdx, rbx
rol r10, 0x1f
imul r10, rax
rol r9, 0x1f
rol r11, 0x1f
imul r9, rax
imul r11, rax
xor rdx, r9
imul rdx, rax
sub rdx, rbx
xor rdx, r10
mov r10d, dword [rsp + 0x1a0]
imul rdx, rax
sub rdx, rbx
xor rdx, r11
mov r11, qword [rsp + 0x90]
imul rdx, rax
sub rdx, rbx
mov rbx, qword [rsp + 0x180]
jmp 0x1402537e4
movabs rdx, 0x27d4eb2f165667c5
add rdx, r14
mov r9, r13
cmp r13, 8
jb 0x14025384b
mov rcx, r13
movabs rbx, 0x7a1435883d4d519d
shr rcx, 3
movabs r10, 0x9e3779b185ebca87
imul rax, rcx, 0xfffffffffffffff8
add r9, rax
mov rax, qword [r8]
add r8, 8
imul rax, qword [rsp + 0x58]
rol rax, 0x1f
imul rax, r10
xor rdx, rax
rol rdx, 0x1b
imul rdx, r10
sub rdx, rbx
sub rcx, 1
jne 0x140253812
mov r10d, dword [rsp + 0x1a0]
mov rbx, qword [rsp + 0x180]
cmp r9, 4
jb 0x14025388e
mov ecx, dword [r8]
movabs rax, 0x9e3779b185ebca87
imul rcx, rax
movabs rax, 0x165667b19e3779f9
add r8, 4
xor rdx, rcx
movabs rcx, 0xc2b2ae3d27d4eb4f
rol rdx, 0x17
imul rdx, rcx
add rdx, rax
sub r9, 4
jmp 0x140253898
movabs rcx, 0xc2b2ae3d27d4eb4f
test r9, r9
je 0x1402538ce
movabs r14, 0x9e3779b185ebca87
movzx eax, byte [r8]
lea r8, [r8 + 1]
imul rax, qword [rsp + 0xe8]
xor rdx, rax
rol rdx, 0xb
imul rdx, r14
sub r9, 1
jne 0x1402538a7
mov r14, qword [rsp + 0x40]
mov rax, rdx
mov qword [rsi - 0xc], rdi
shr rax, 0x21
xor rax, rdx
imul rax, rcx
mov rcx, rax
shr rcx, 0x1d
xor rcx, rax
movabs rax, 0x165667b19e3779f9
imul rcx, rax
mov rax, rcx
shr rax, 0x20
mov rdx, rax
mov dword [rsi], eax
mov rax, qword [rsp + 0x190]
xor rdx, rcx
and edx, r12d
mov dword [rsi - 4], edx
mov ecx, dword [rax + 8]
mov rax, qword [rbx + 0x28]
shl rdx, cl
lea rcx, [rax + rdx*8]
mov qword [rsi + 4], rcx
prefetcht0 byte [rcx]
inc r15d
add rbp, 8
add rsi, 0x18
cmp r15d, r10d
jb 0x140253670
mov r8, qword [rsp + 0x30]
lea rcx, [rbx + 0x248]
mov rax, qword [rsp + 0x68]
lea r10, [rbx + 0x38]
mov r14, qword [rsp + 0x198]
lea r11, [rbx + 0x28]
mov r12d, dword [rsp + 0x1a0]
mov ebp, r8d
mov rdi, qword [rsp + 0x40]
mov dword [rsp + 0x50], r8d
mov qword [rsp + 0xd8], rcx
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x30], r8
mov dword [rsp + 0x4c], 0
nop
mov rsi, qword [rcx - 8]
xor eax, eax
mov edx, dword [rcx + 4]
xor ebx, ebx
mov r9d, dword [rcx]
xor r13d, r13d
mov r15, qword [rcx + 8]
xor ecx, ecx
mov qword [rsp + 0xc8], rax
mov eax, esi
sub eax, ebp
mov qword [rsp + 0x78], rbx
mov qword [rsp + 0x80], r13
mov dword [rsp + 0x20], edx
mov dword [rsp + 0x48], r9d
mov qword [rsp + 0x70], rcx
mov dword [rsp + 0x88], eax
mov dword [rsp + 0x8c], edx
cmp rsi, r14
jae 0x140253a14
mov rbp, qword [rsp + 0x190]
mov edx, r9d
mov r9, qword [r10]
mov rbx, qword [rsp + 0x180]
add r9, rdx
mov ecx, dword [rbp + 8]
movups xmm2, xmmword [rbp]
shl rdx, cl
lea r10, [rbx + 0x38]
mov rcx, qword [r11]
lea r11, [rbx + 0x28]
jmp 0x140253e0d
mov eax, dword [rsp + 0x98]
lea rbp, [r15 + rax*8]
mov qword [rsp + 0xd0], rbp
cmp r15, rbp
jae 0x140253de8
mov r12, qword [rsp + 0x60]
cmp dword [r15 + 4], edx
jne 0x140253cd4
mov eax, dword [r15]
cmp eax, dword [rsp + 0x68]
jbe 0x140253cd4
cmp dword [rsp + 0x9c], 0
mov r13, qword [rsp + 0xb8]
je 0x140253b8c
cmp eax, dword [rsp + 0xa0]
mov rdi, r8
mov rbp, qword [rsp + 0xb0]
mov r11, r13
cmovb rdi, qword [rsp + 0xc0]
mov r8, r13
add rdi, rax
cmp eax, dword [rsp + 0xa0]
mov rdx, rdi
cmovb r11, qword [rsp + 0xa8]
cmovb rbp, r12
mov rcx, r11
sub rcx, rdi
add rcx, rsi
cmp rcx, r13
cmovb r8, rcx
mov rcx, rsi
call fcn.140214ae0
mov rbx, rax
lea rcx, [rax + rdi]
cmp rcx, r11
jne 0x140253ad8
mov rdx, qword [rsp + 0xb0]
lea rcx, [rax + rsi]
mov r8, r13
call fcn.140214ae0
add rbx, rax
cmp rbx, qword [rsp + 0x40]
jb 0x140253cac
xor edx, edx
cmp rsi, r14
jbe 0x140253b18
mov r8, rsi
lea rcx, [rdi - 1]
sub r8, rdi
lea rax, [rcx + 1]
cmp rax, rbp
jbe 0x140253b18
movzx eax, byte [rcx]
cmp byte [rcx + r8], al
jne 0x140253b18
dec rcx
inc rdx
lea rax, [rcx + 1]
add rax, r8
cmp rax, r14
ja 0x140253af4
sub rdi, rdx
cmp rdi, rbp
jne 0x140253b7a
mov r10, qword [rsp + 0x60]
cmp rbp, r10
je 0x140253b77
mov rax, rsi
xor r9d, r9d
sub rax, rdx
cmp rax, r14
jbe 0x140253b74
mov rax, qword [rsp + 0xa8]
mov r8, rsi
sub r8, rdx
sub r8, rax
lea rcx, [rax - 1]
nop dword [rax]
lea rax, [rcx + 1]
cmp rax, r10
jbe 0x140253b74
movzx eax, byte [rcx]
cmp byte [rcx + r8], al
jne 0x140253b74
dec rcx
inc r9
lea rax, [rcx + 1]
add rax, r8
cmp rax, r14
ja 0x140253b50
add rdx, r9
mov r12, r10
mov rdi, qword [rsp + 0x40]
mov rbp, qword [rsp + 0xd0]
jmp 0x140253c64
lea r9, [rax + r8]
mov rax, rsi
lea r8, [r13 - 7]
mov rdx, r9
cmp rsi, r8
jae 0x140253bd9
mov rax, qword [rsi]
xor rax, qword [r9]
je 0x140253bb1
bsf rbx, rax
shr rbx, 3
jmp 0x140253c1e
lea rax, [rsi + 8]
lea rdx, [r9 + 8]
cmp rax, r8
jae 0x140253bd9
nop
mov rcx, qword [rax]
xor rcx, qword [rdx]
jne 0x140253c99
add rax, 8
add rdx, 8
cmp rax, r8
jb 0x140253bc0
lea rcx, [r13 - 3]
cmp rax, rcx
jae 0x140253bf0
mov ecx, dword [rax]
cmp dword [rdx], ecx
jne 0x140253bf0
add rax, 4
add rdx, 4
lea rcx, [r13 - 1]
cmp rax, rcx
jae 0x140253c09
movzx ecx, word [rax]
cmp word [rdx], cx
jne 0x140253c09
add rax, 2
add rdx, 2
cmp rax, r13
jae 0x140253c18
movzx ecx, byte [rax]
cmp byte [rdx], cl
jne 0x140253c18
inc rax
mov rbx, rax
sub rbx, rsi
cmp rbx, rdi
jb 0x140253cb9
xor edx, edx
cmp rsi, r14
jbe 0x140253c64
mov r8, rsi
lea rcx, [r9 - 1]
sub r8, r9
mov r9, qword [rsp + 0xb0]
lea rax, [rcx + 1]
cmp rax, r9
jbe 0x140253c64
movzx eax, byte [rcx]
cmp byte [rcx + r8], al
jne 0x140253c64
dec rcx
inc rdx
lea rax, [rcx + 1]
add rax, r8
cmp rax, r14
ja 0x140253c40
mov r8, qword [rsp + 0x30]
lea rax, [rdx + rbx]
cmp rax, qword [rsp + 0xc8]
jbe 0x140253cbe
mov rcx, r15
mov qword [rsp + 0xc8], rax
mov qword [rsp + 0x70], rcx
mov r13, rdx
mov qword [rsp + 0x78], rbx
mov qword [rsp + 0x80], rdx
jmp 0x140253cd0
bsf rbx, rcx
shr rbx, 3
sub rbx, rsi
add rbx, rax
jmp 0x140253c1e
mov rdi, qword [rsp + 0x40]
mov rbp, qword [rsp + 0xd0]
mov r8, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x70]
mov rbx, qword [rsp + 0x78]
mov r13, qword [rsp + 0x80]
mov edx, dword [rsp + 0x20]
add r15, 8
cmp r15, rbp
jb 0x140253a35
mov r12d, dword [rsp + 0x1a0]
test rcx, rcx
jne 0x140253d08
mov rbx, qword [rsp + 0x180]
mov r9d, dword [rsp + 0x48]
lea r10, [rbx + 0x38]
lea r11, [rbx + 0x28]
jmp 0x140253df0
mov r10, qword [rsp + 0x188]
mov r8d, esi
sub r8d, dword [rcx]
sub r8d, dword [rsp + 0x50]
mov rdx, qword [r10 + 0x18]
mov rax, qword [r10]
lea rcx, [rdx + rdx*2]
lea r9, [rax + rcx*4]
cmp rdx, qword [r10 + 0x20]
je 0x140253eb6
mov r11, qword [rsp + 0x180]
mov eax, esi
mov edx, dword [rsp + 0x48]
sub eax, r13d
mov rbp, qword [rsp + 0x190]
sub eax, r14d
mov dword [r9 + 4], eax
lea r14, [rsi + rbx]
mov dword [r9], r8d
lea eax, [rbx + r13]
mov rbx, qword [rsp + 0x180]
mov dword [r9 + 8], eax
inc qword [r10 + 0x18]
lea r10, [r11 + 0x38]
mov ecx, dword [rbp + 8]
add r11, 0x28
mov r9, qword [r10]
movups xmm2, xmmword [rbp]
mov rax, qword [rsp + 0x88]
add r9, rdx
shl rdx, cl
mov rcx, qword [r11]
psrldq xmm2, 8
movzx r8d, byte [r9]
add rdx, r8
mov qword [rsp + 0x198], r14
inc r8b
mov qword [rcx + rdx*8], rax
mov eax, 1
movd ecx, xmm2
shl al, cl
dec al
and al, r8b
mov r8, qword [rsp + 0x28]
mov byte [r9], al
mov rax, qword [rsp + 0x90]
add rax, r8
cmp r14, rax
jbe 0x140253e40
mov rsi, qword [rsp + 0xf0]
mov r11, r14
sub r11, r8
jmp 0x140253e80
mov rbx, qword [rsp + 0x180]
mov rcx, qword [rsp + 0x190]
mov edx, r9d
mov r9, qword [r10]
add r9, rdx
movups xmm2, xmmword [rcx]
mov ecx, dword [rcx + 8]
shl rdx, cl
mov rcx, qword [r11]
movzx r8d, byte [r9]
mov rax, qword [rsp + 0x88]
add rdx, r8
inc r8b
psrldq xmm2, 8
mov qword [rcx + rdx*8], rax
mov eax, 1
movd ecx, xmm2
shl al, cl
dec al
and al, r8b
mov r8, qword [rsp + 0x28]
mov byte [r9], al
mov r9d, dword [rsp + 0x4c]
mov rcx, qword [rsp + 0xd8]
inc r9d
add rcx, 0x18
mov dword [rsp + 0x4c], r9d
mov qword [rsp + 0xd8], rcx
cmp r9d, r12d
jae 0x140253e74
mov r8, qword [rsp + 0x30]
mov ebp, dword [rsp + 0x50]
jmp 0x140253990
mov r11, qword [rsp + 0x90]
lea rsi, [rbx + 0x40]
mov r12d, dword [rsp + 0x54]
lea rbp, str.ww__
mov r9, qword [rsp + 0x38]
mov r15, qword [rsp + 0xf8]
add r11, r8
mov qword [rsp + 0x90], r11
cmp r11, r15
jae 0x140253ebf
mov rdi, qword [rsp + 0xe0]
jmp 0x1402534e0
mov rax, 0xffffffffffffffba
jmp 0x140253ecd
mov rdx, qword [rsp + 0xb8]
sub rdx, r14
mov rax, rdx
mov r13, qword [rsp + 0x138]
mov rdi, qword [rsp + 0x140]
add rsp, 0x148
pop r15
pop r14
pop r12
pop rsi
pop rbp
pop rbx
ret