Function at 0x14024e680
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x98
mov rdi, r8
mov rax, qword [0x140554790]
xor rax, rsp
mov qword [rsp + 0x90], rax
mov eax, dword [r8 + 0x18]
add eax, eax
add eax, 0x407cb7e5
mov r8d, eax
xor r8d, 2
not eax
and eax, 0x7ffffffc
or eax, r8d
not eax
lea eax, [r8 + rax*2]
mov r8d, dword [0x140526e30]
add r8d, eax
add r8d, 0x25c27052
mov esi, 0xa542
mov eax, dword [0x140526a24]
add eax, esi
cdqe
add rax, qword [0x140526a68]
call qword [0x1404ee420]
mov r14, rax
mov r15, qword [rdi + 0x18]
mov eax, dword [0x140526a2c]
mov ecx, dword [0x140526e30]
add eax, ecx
add eax, 0x663fcd79
cdqe
add rax, qword [0x140526a88]
lea rcx, [rsp + 0x88]
mov edx, 0xb3068b6e
call qword [0x1404ee420]
xor ecx, ecx
sub rcx, qword [rsp + 0x88]
xor ebx, ebx
lea rdx, [0x1404341f0]
neg rdx
mov eax, dword [0x140526a1c]
add eax, esi
cdqe
add rax, qword [0x140526ad0]
lea r8, [rsp + 0x88]
mov r9d, 0x205da51b
call qword [0x1404ee420]
sub rbx, qword [rsp + 0x88]
mov qword [rsp + 0x50], rbx
mov eax, dword [0x140526a3c]
mov ecx, dword [0x140526e30]
add eax, ecx
add eax, 0x663fcd79
cdqe
add rax, qword [0x140526ac0]
lea rcx, [rsp + 0x88]
mov edx, 0x36739e24
call qword [0x1404ee420]
add esi, dword [0x140526a20]
mov eax, dword [rsp + 0x88]
mov dword [rsp + 0x40], eax
movsxd rax, esi
add rax, qword [0x140526aa8]
lea rdx, [rsp + 0x88]
mov rcx, r15
mov r8d, 0xb126e047
call qword [0x1404ee420]
test al, 1
jne 0x14024ee98
cmp qword [rdi + 0x20], 0x10
jb 0x14024e7eb
mov rdi, qword [rdi + 8]
jmp 0x14024e7ef
add rdi, 8
mov r12d, dword [rsp + 0x88]
lea r13, [r14 + 4]
movabs rax, 0xe31c894a6b6beb2f
add rax, qword [0x140526e38]
xor rax, r15
not rax
and rax, r15
xor ebx, ebx
cmp rax, 0xf
jae 0x14024e825
mov rsi, rdi
jmp 0x14024ee15
mov qword [rsp + 0x70], rdi
mov qword [rsp + 0x78], r13
mov qword [rsp + 0x48], r12
mov qword [rsp + 0x80], r14
inc rax
mov qword [rsp + 0x60], rax
mov eax, r15d
mov qword [rsp + 0x68], rax
mov r14d, dword [0x140526770]
lea eax, [r14 + 1]
mov dword [0x140526770], eax
and r14d, eax
xor esi, esi
mov edi, 0x663f2837
mov ebx, 0xa542
lea r12, [rsp + 0x88]
nop word cs:[rax + rax]
test sil, sil
jne 0x14024e8b1
mov ebp, dword [0x140526e30]
add ebp, edi
mov eax, dword [0x140526a40]
add eax, ebx
cdqe
add rax, qword [0x140526a98]
mov ecx, 0xc142e46c
call qword [0x1404ee420]
test al, 1
jne 0x14024e931
mov ecx, dword [0x1405652e8]
lea edx, [rcx - 1]
mov eax, dword [0x140526a38]
add eax, ebx
cdqe
add rax, qword [0x140526a80]
mov r8, r12
mov r9d, 0xd05b4a5b
call qword [0x1404ee420]
mov ecx, dword [rsp + 0x88]
mov eax, dword [0x140526a28]
add eax, ebx
cdqe
add rax, qword [0x140526a90]
mov rdx, r12
mov r8d, 0xf62aec15
call qword [0x1404ee420]
mov ecx, dword [rsp + 0x88]
mov eax, dword [0x140526a00]
add eax, ebx
cdqe
add rax, qword [0x140526a70]
mov edx, 0x2c5396af
call qword [0x1404ee420]
test al, 1
je 0x14024e880
jmp 0x14024e885
mov eax, 0
mov qword [rsp + 0x38], rax
mov eax, 0
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x58], r14
mov dword [rsp + 0x44], ebp
cmp r14d, ebp
mov rsi, qword [rsp + 0x50]
jne 0x14024e977
mov eax, 0
mov qword [rsp + 0x38], rax
mov eax, 0
mov qword [rsp + 0x30], rax
cmp dword [rsp + 0x40], 0
jg 0x14024eba4
mov rcx, qword [rsp + 0x68]
add rcx, qword [0x140564d20]
mov r14, qword [rsp + 0x80]
lea rsi, [r14 + rcx*2]
add rsi, 6
mov edi, 0xa542
mov eax, dword [0x140526a0c]
add eax, edi
cdqe
add rax, qword [0x140526ab0]
lea rdx, [rsp + 0x88]
mov r8d, 0x2df4f736
call qword [0x1404ee420]
add edi, dword [0x140526a04]
mov rdx, qword [rsp + 0x88]
movsxd rax, edi
add rax, qword [0x140526ac8]
mov dword [rsp + 0x20], 0xd39b81e6
lea r9, [rsp + 0x88]
mov rdi, qword [rsp + 0x70]
mov rcx, rdi
mov r13, qword [rsp + 0x78]
mov r8, r13
call qword [0x1404ee420]
movzx edx, byte [rsp + 0x88]
mov r8d, edx
xor r8b, 1
cmp rdi, rsi
setb cl
mov eax, dword [0x140526a30]
mov r9d, dword [0x140526e30]
mov r10d, r9d
xor r10d, 0x13815fe8
and r9d, 0x13815fe8
lea r9d, [r10 + r9*2]
neg r9d
add eax, r9d
add eax, 0xad42dcf3
cdqe
add rax, qword [0x140526a78]
mov dword [rsp + 0x20], 0x1a2fbde2
lea r9, [rsp + 0x88]
call qword [0x1404ee420]
cmp byte [rsp + 0x88], 1
jne 0x14024ee06
xor eax, eax
test al, al
mov r12, qword [rsp + 0x48]
jne 0x14024ee10
mov r15, qword [rsp + 0x60]
mov rbx, r15
and rbx, 0xfffffffffffffff0
mov rcx, qword [0x1404341e8]
xor r8d, r8d
mov eax, dword [rsp + 0x44]
cmp dword [rsp + 0x58], eax
setne r8b
xor eax, eax
add r8, 0xffffffffffffffff
mov r9d, 0
adc r9, 0xffffffffffffffff
mov rdx, qword [0x1404341e0]
sub rdx, qword [rsp + 0x38]
sbb rcx, qword [rsp + 0x30]
not rdx
not rcx
mov r10, r9
xor r10, rcx
mov r11, r8
xor r11, rdx
or rcx, r9
and rcx, r10
or rdx, r8
and rdx, r11
and rcx, r9
and rdx, r8
mov r8, rdx
not r8
xor rdx, rcx
not rcx
and rcx, r8
or rcx, rdx
not rcx
or rcx, rdx
add rcx, qword [0x140564d20]
movabs rdx, 0x881997850d34bf3
movabs r8, 0xe31c89496b6beb30
add r8, rdx
movabs r9, 0xe342f5cead6138c4
sub r8, r9
sub r8, rdx
add r8, qword [0x140526e38]
movabs rdx, 0x2ec9df2d7e72b368
sub r8, rdx
add r8, r9
add r8, rdx
add r8, rcx
mov qword [0x140564d20], r8
lea rsi, [rdi + rbx]
lea r13, [r13 + rbx*2]
lea rcx, [rbx - 0x10]
nop word [rax + rax]
movq xmm0, qword [rdi + rax]
punpcklbw xmm0, xmm0
movq xmm1, qword [rdi + rax + 8]
punpcklbw xmm1, xmm1
psraw xmm0, 8
psraw xmm1, 8
movdqu xmmword [r14 + rax*2 + 4], xmm0
movdqu xmmword [r14 + rax*2 + 0x14], xmm1
cmp rcx, rax
je 0x14024eb96
add rax, 0x10
jmp 0x14024eb60
cmp r15, rbx
jne 0x14024ee15
jmp 0x14024ee98
mov ebx, 0xa542
lea r12, [rsp + 0x88]
mov r14d, 0x663f2838
lea rax, [fcn.14024e680]
lea r13d, [rax + rax]
add r13d, 0x2960
mov edi, 0x663f2837
xor ebp, ebp
xor eax, eax
mov qword [rsp + 0x38], rax
xor eax, eax
mov qword [rsp + 0x30], rax
jmp 0x14024ebf0
cmp ebp, dword [rsp + 0x40]
mov r14d, 0x663f2838
jge 0x14024e977
mov eax, dword [0x1405652e8]
nop word cs:[rax + rax]
mov eax, dword [0x140526a08]
add eax, ebx
cdqe
add rax, qword [0x140526ab8]
mov ecx, ebp
mov rdx, rsi
mov r8, r12
mov r9d, 0xbb262f99
call qword [0x1404ee420]
mov eax, dword [0x140526e30]
add eax, r14d
mov ecx, r13d
xor ecx, eax
not ecx
test ecx, eax
jne 0x14024ec00
mov rsi, qword [rsp + 0x88]
nop word cs:[rax + rax]
mov eax, dword [0x1405652e8]
mov ecx, dword [0x140526e30]
mov edx, ecx
xor edx, 0xce75ee49
and ecx, 0x4e75ee49
lea ecx, [rdx + rcx*2]
not ecx
add ecx, eax
add ecx, 0x8dc1138c
imul ecx, eax
test cl, 1
jne 0x14024ecb8
mov r14, qword [rsi]
mov r15, qword [rsi + 8]
mov ecx, dword [0x1405652ec]
mov eax, dword [0x140526a10]
mov edx, dword [0x140526e30]
sub eax, edx
add eax, 0x99c17d0b
cdqe
add rax, qword [0x140526a58]
add edx, 0xb296bcbd
call qword [0x1404ee420]
test al, 1
jne 0x14024ed00
mov rax, qword [rsi]
mov rax, qword [rsi + 8]
mov ecx, dword [0x1405652e8]
mov edx, dword [0x140526e30]
mov eax, ecx
sub eax, edx
add eax, 0x99c0d7c8
imul eax, ecx
mov ecx, edx
xor ecx, 0x663f2839
and edx, 0x663f2839
lea ecx, [rcx + rdx*2]
xor edx, edx
div ecx
test edx, edx
jne 0x14024ec50
jmp 0x14024ec7f
mov rdx, qword [rsp + 0x38]
not rdx
mov r8, qword [rsp + 0x30]
not r8
mov rax, r8
and rax, r15
mov rcx, rdx
and rcx, r14
or rdx, r14
or r8, r15
not r8
or r8, rax
mov qword [rsp + 0x30], r8
not rdx
or rdx, rcx
mov qword [rsp + 0x38], rdx
nop dword [rax + rax]
mov eax, dword [0x1405652ec]
cmp eax, 0xe
jg 0x14024ed99
mov eax, dword [0x140526a14]
add eax, ebx
cdqe
add rax, qword [0x140526a60]
mov ecx, dword [0x140526e30]
mov edx, ecx
xor edx, 0xb3f93fd4
and ecx, 0x33f93fd4
lea edx, [rdx + rcx*2]
mov rcx, r12
call qword [0x1404ee420]
mov eax, dword [rsp + 0x88]
mov ecx, eax
not ecx
imul ecx, eax
and ecx, 1
mov eax, dword [0x140526e30]
add eax, edi
cmp ecx, eax
je 0x14024edb0
mov eax, dword [0x1405652e8]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x14024ed40
jmp 0x14024ed4b
add ebp, 0x10
mov rsi, qword [rsp + 0x50]
xor r14d, r14d
nop dword [rax + rax]
test r14b, r14b
jne 0x14024ede4
mov eax, dword [0x1405652e8]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
mov eax, dword [0x140526e30]
add eax, edi
cmp ecx, eax
je 0x14024ebe0
mov eax, dword [0x140526a34]
add eax, ebx
cdqe
add rax, qword [0x140526aa0]
mov ecx, 0x9ad2d8c5
call qword [0x1404ee420]
test al, 1
je 0x14024edc0
jmp 0x14024edc5
mov rsi, rdi
mov r12, qword [rsp + 0x48]
jmp 0x14024ee13
mov rsi, rdi
xor ebx, ebx
mov edx, dword [0x140526e30]
lea eax, [rdx + 0x40a246d2]
mov ecx, eax
xor ecx, 0x259ce165
and eax, 0x259ce165
lea eax, [rcx + rax*2]
sub edx, eax
add edx, r12d
sub edx, ebx
add edx, 0x663f2838
mov eax, r12d
sub eax, ebx
mov ecx, edx
not ecx
xor edx, 7
and ecx, 0xfffffff8
or ecx, edx
xor ecx, 0xffffffff
je 0x14024ee93
inc rsi
add r13, 2
xor edx, edx
nop dword [rax]
movsx r8d, byte [rsi - 1]
mov word [r13 - 2], r8w
mov r8d, dword [0x140564004]
add ebx, r8d
inc ebx
mov r8d, dword [0x140526e30]
add edx, r8d
add edx, 0x663f2838
cmp edx, ecx
je 0x14024ee93
inc rsi
add r13, 2
jmp 0x14024ee60
cmp eax, 7
jae 0x14024eebf
mov rcx, qword [rsp + 0x90]
xor rcx, rsp
call fcn.1403e4010
mov rax, r14
add rsp, 0x98
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
sub r12d, ebx
add r12d, 0xfffffff9
xor edi, edi
mov ebx, 0xa542
nop dword [rax]
movsx eax, byte [rsi + rdi]
mov word [r13 + rdi*2], ax
movsx eax, byte [rsi + rdi + 1]
mov word [r13 + rdi*2 + 2], ax
movsx eax, byte [rsi + rdi + 2]
mov word [r13 + rdi*2 + 4], ax
movsx eax, byte [rsi + rdi + 3]
mov word [r13 + rdi*2 + 6], ax
movsx eax, byte [rsi + rdi + 4]
mov word [r13 + rdi*2 + 8], ax
movsx ecx, byte [rsi + rdi + 5]
mov eax, dword [0x140526a18]
add eax, ebx
cdqe
add rax, qword [0x140526a50]
lea rdx, [rdi*2 + 0xa]
add rdx, r13
mov r8d, 0x49f15824
call qword [0x1404ee420]
movsx eax, byte [rsi + rdi + 6]
mov word [r13 + rdi*2 + 0xc], ax
movsx eax, byte [rsi + rdi + 7]
mov word [r13 + rdi*2 + 0xe], ax
cmp r12d, edi
je 0x14024ee98
add rdi, 8
jmp 0x14024eed0