Function at 0x14025ece0
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rsi
push rdi
push r14
sub rsp, 0x98
cmp dword [rcx], 0
mov rdi, r9
mov r14d, r8d
mov rbx, rdx
mov rsi, rcx
je 0x14025ed10
mov eax, 0xfffffffb
add rsp, 0x98
pop r14
pop rdi
pop rsi
pop rbx
ret
cmp dword [rcx + 8], 0
je 0x14025ed28
mov eax, 0xfffffffa
add rsp, 0x98
pop r14
pop rdi
pop rsi
pop rbx
ret
test rbx, rbx
je 0x14025f175
test r14d, r14d
jle 0x14025f175
mov ecx, dword [rcx + 4]
shr r14d, 7
mov qword [rsp + 0xc8], rbp
mov dword [rsp + 0xd0], r14d
test ecx, ecx
je 0x14025f142
sub ecx, 1
je 0x14025f0a0
cmp ecx, 1
je 0x14025ed81
mov eax, 0xffffffff
mov rbp, qword [rsp + 0xc8]
add rsp, 0x98
pop r14
pop rdi
pop rsi
pop rbx
ret
mov eax, dword [rsi + 0xc]
mov dword [rsp + 0x50], eax
mov eax, dword [rsi + 0x10]
mov dword [rsp + 0x54], eax
mov eax, dword [rsi + 0x14]
mov dword [rsp + 0x58], eax
mov eax, dword [rsi + 0x18]
mov dword [rsp + 0x5c], eax
mov dword [rsp + 0x70], r14d
test r14d, r14d
je 0x14025f169
movzx ecx, byte [rsp + 0x5a]
movzx r14d, al
movzx eax, byte [rsp + 0x5b]
mov byte [rsp + 0x44], al
movzx eax, byte [rsp + 0x59]
mov byte [rsp + 0x40], al
movzx eax, byte [rsp + 0x57]
mov byte [rsp + 0x30], al
movzx eax, byte [rsp + 0x55]
mov byte [rsp + 0x42], cl
movzx ecx, byte [rsp + 0x58]
mov byte [rsp + 0x2c], al
movzx eax, byte [rsp + 0x53]
mov byte [rsp + 0x38], cl
movzx ecx, byte [rsp + 0x56]
mov qword [rsp + 0x90], r12
movzx r12d, byte [rsp + 0x5e]
mov byte [rsp + 0x24], al
movzx eax, byte [rsp + 0x51]
mov byte [rsp + 0x2e], cl
movzx ecx, byte [rsp + 0x54]
mov qword [rsp + 0x88], r13
movzx r13d, byte [rsp + 0x5d]
mov byte [rsp + 0x20], al
movzx eax, byte [rsp + 0x50]
mov byte [rsp + 0x28], cl
movzx ecx, byte [rsp + 0x52]
mov qword [rsp + 0x80], r15
movzx r15d, byte [rsp + 0x5f]
mov byte [rsp + 0xc0], al
mov byte [rsp + 0x22], cl
nop dword [rax + rax]
movzx ebx, byte [rsp + 0x44]
xor ebp, ebp
nop word [rax + rax]
movaps xmm0, xmmword [rsp + 0x50]
lea r8, [rsp + 0x60]
lea rdx, [rsp + 0x60]
movdqa xmmword [rsp + 0x60], xmm0
mov rcx, rsi
call fcn.14025f5b0
movzx eax, byte [rsp + 0xc0]
movzx r8d, bpl
movzx r9d, byte [rsp + 0x60]
add al, al
movzx r11d, byte [rsp + 0x40]
and r9b, 0x80
movzx r10d, byte [rsp + 0x42]
and r8b, 7
movzx ecx, r8b
shr r11b, 7
shr r9b, cl
movzx ecx, byte [rsp + 0x20]
shr cl, 7
or cl, al
mov edx, ebp
movzx eax, byte [rsp + 0x20]
mov byte [rsp + 0xc0], cl
add al, al
mov byte [rsp + 0x50], cl
movzx ecx, byte [rsp + 0x22]
shr cl, 7
or cl, al
shr rdx, 3
movzx eax, byte [rsp + 0x22]
mov byte [rsp + 0x20], cl
add al, al
mov byte [rsp + 0x51], cl
movzx ecx, byte [rsp + 0x24]
xor r9b, byte [rdx + rdi]
shr cl, 7
or cl, al
mov byte [rdx + rdi], r9b
movzx eax, byte [rsp + 0x24]
mov byte [rsp + 0x22], cl
add al, al
mov byte [rsp + 0x52], cl
movzx ecx, byte [rsp + 0x28]
shr cl, 7
or cl, al
movzx eax, byte [rsp + 0x28]
mov byte [rsp + 0x24], cl
add al, al
mov byte [rsp + 0x53], cl
movzx ecx, byte [rsp + 0x2c]
shr cl, 7
or cl, al
movzx eax, byte [rsp + 0x2c]
mov byte [rsp + 0x28], cl
add al, al
mov byte [rsp + 0x54], cl
movzx ecx, byte [rsp + 0x2e]
shr cl, 7
or cl, al
movzx eax, byte [rsp + 0x2e]
mov byte [rsp + 0x2c], cl
add al, al
mov byte [rsp + 0x55], cl
movzx ecx, byte [rsp + 0x30]
shr cl, 7
or cl, al
movzx eax, byte [rsp + 0x30]
add al, al
mov byte [rsp + 0x2e], cl
mov byte [rsp + 0x56], cl
movzx ecx, byte [rsp + 0x38]
shr cl, 7
or cl, al
movzx eax, byte [rsp + 0x38]
add al, al
mov byte [rsp + 0x30], cl
or r11b, al
mov byte [rsp + 0x57], cl
mov byte [rsp + 0x38], r11b
mov byte [rsp + 0x58], r11b
shr r10b, 7
movzx eax, byte [rsp + 0x40]
movzx ecx, r14b
add al, al
shr cl, 7
or r10b, al
movzx edx, bl
movzx eax, byte [rsp + 0x42]
inc ebp
add al, al
shr dl, 7
or dl, al
mov byte [rsp + 0x40], r10b
movzx eax, bl
mov byte [rsp + 0x59], r10b
add al, al
mov byte [rsp + 0x42], dl
movzx ebx, cl
mov byte [rsp + 0x5a], dl
or bl, al
movzx ecx, r13b
shr cl, 7
movzx eax, r14b
add al, al
mov byte [rsp + 0x5b], bl
movzx r14d, cl
movzx ecx, r12b
or r14b, al
shr cl, 7
movzx eax, r13b
mov byte [rsp + 0x5c], r14b
add al, al
movzx r13d, cl
or r13b, al
movzx ecx, r15b
shr cl, 7
movzx eax, r12b
add al, al
mov byte [rsp + 0x5d], r13b
movzx r12d, cl
mov ecx, 7
or r12b, al
sub cl, r8b
movzx eax, r15b
shr r9b, cl
and r9b, 1
mov byte [rsp + 0x5e], r12b
add al, al
movzx r15d, r9b
or r15b, al
mov byte [rsp + 0x5f], r15b
cmp ebp, 0x80
jl 0x14025ee60
mov byte [rsp + 0x44], bl
mov ebx, dword [rsp + 0x70]
dec ebx
mov dword [rsp + 0x70], ebx
test ebx, ebx
jg 0x14025ee50
mov r14d, dword [rsp + 0xd0]
mov r15, qword [rsp + 0x80]
mov r13, qword [rsp + 0x88]
mov r12, qword [rsp + 0x90]
shl r14d, 7
mov eax, r14d
jmp 0x14025ed6c
mov eax, dword [rsi + 0xc]
mov r8, rdi
xor eax, dword [rdx]
mov rcx, rsi
mov dword [rsp + 0x60], eax
mov eax, dword [rdx + 4]
xor eax, dword [rsi + 0x10]
mov dword [rsp + 0x64], eax
mov eax, dword [rdx + 8]
xor eax, dword [rsi + 0x14]
mov dword [rsp + 0x68], eax
mov eax, dword [rdx + 0xc]
lea rdx, [rsp + 0x60]
xor eax, dword [rsi + 0x18]
mov dword [rsp + 0x6c], eax
call fcn.14025f5b0
add rbx, 0x10
lea ebp, [r14 - 1]
test ebp, ebp
jle 0x14025f169
add rdi, 8
nop dword [rax + rax]
mov eax, dword [rdi - 8]
lea rdi, [rdi + 0x10]
xor eax, dword [rbx]
lea r8, [rdi - 8]
mov dword [rsp + 0x60], eax
lea rdx, [rsp + 0x60]
mov eax, dword [rdi - 0x14]
mov rcx, rsi
xor eax, dword [rbx + 4]
mov dword [rsp + 0x64], eax
mov eax, dword [rbx + 8]
xor eax, dword [rdi - 0x10]
mov dword [rsp + 0x68], eax
mov eax, dword [rdi - 0xc]
xor eax, dword [rbx + 0xc]
mov dword [rsp + 0x6c], eax
call fcn.14025f5b0
dec ebp
lea rbx, [rbx + 0x10]
test ebp, ebp
jg 0x14025f0f0
shl r14d, 7
mov eax, r14d
jmp 0x14025ed6c
mov ebp, r14d
test r14d, r14d
je 0x14025f169
sub rbx, rdi
nop dword [rax]
lea rdx, [rbx + rdi]
mov r8, rdi
mov rcx, rsi
call fcn.14025f5b0
add rdi, 0x10
dec ebp
test ebp, ebp
jg 0x14025f150
shl r14d, 7
mov eax, r14d
jmp 0x14025ed6c
xor eax, eax
add rsp, 0x98
pop r14
pop rdi
pop rsi
pop rbx
ret