Function at 0x42e7e0
Capabilities:
Encode data using xor

Disassembly:
lea eax, [rdx - 1]
test eax, eax
jle 0x42e0b5
lea r9d, [rdx - 2]
mov r8, rcx
lea r10, [rcx + r9 + 1]
movzx r9d, byte [r8 + 1]
add r8, 1
mov byte [r8 - 1], r9b
cmp r8, r10
jne 0x42e0a3
movsxd rdx, edx
mov byte [rcx + rdx - 1], 0
ret
lea r8d, [rdx - 1]
mov eax, edx
movzx r11d, r8b
cmp edx, r11d
jle 0x42e10a
lea eax, [rdx - 1]
cmp r11d, eax
jge 0x42e102
movzx r9d, r8b
lea r10d, [rdx - 2]
lea r8, [rcx + r9]
lea r9, [rcx + r9 + 1]
sub r10d, r11d
add r10, r9
nop
movzx r9d, byte [r8 + 1]
add r8, 1
mov byte [r8 - 1], r9b
cmp r8, r10
jne 0x42e0f0
movsxd rdx, edx
mov byte [rcx + rdx - 1], 0
ret
test r9d, r9d
jle 0x42e5fd
lea eax, [r9 - 1]
shr eax, 2
lea r11, [r8 + rax*4 + 4]
mov eax, dword [r8]
add r8, 4
mov ecx, eax
mov edx, eax
and ecx, 0x1f1f1f1f
shr edx, 1
lea r10d, [rcx + 0x1f1f1f1f]
and edx, 0x20202020
add ecx, 0x5050505
not ecx
and edx, r10d
mov r10d, eax
shr r10d, 2
and r10d, 0x20202020
not r10d
and edx, r10d
and edx, ecx
or edx, eax
mov dword [r8 - 4], edx
cmp r11, r8
jne 0x42e5b1
mov eax, r9d
ret
push rbx
test r9d, r9d
jle 0x42e671
lea eax, [r9 - 1]
mov r11, r8
shr eax, 2
lea rbx, [r8 + rax*4 + 4]
mov eax, dword [r11]
add r11, 4
mov ecx, eax
mov edx, eax
and ecx, 0x1f1f1f1f
shr edx, 1
lea r10d, [rcx + 0x1f1f1f1f]
and edx, 0x20202020
add ecx, 0x5050505
not ecx
and edx, r10d
mov r10d, eax
shr r10d, 2
and r10d, 0x20202020
not r10d
and edx, r10d
and edx, ecx
or edx, eax
mov dword [r11 - 4], edx
cmp rbx, r11
jne 0x42e625
mov edx, dword [r8]
mov ecx, edx
mov eax, edx
and ecx, 0x1f1f1f1f
shr eax, 1
lea r10d, [rcx + 0x1f1f1f1f]
and eax, 0x20
add ecx, 0x5050505
and eax, r10d
mov r10d, edx
shr r10d, 2
not eax
and r10d, 0x20202020
or eax, r10d
or eax, ecx
and eax, edx
mov dword [r8], eax
mov eax, r9d
pop rbx
ret
push rbx
test r9d, r9d
jle 0x42e71e
lea eax, [r9 - 1]
shr eax, 2
lea rbx, [r8 + rax*4 + 4]
mov ecx, dword [r8]
add r8, 4
mov r10d, ecx
mov edx, ecx
mov r11d, ecx
and r10d, 0x1f1f1f1f
shr edx, 1
shr r11d, 2
lea eax, [r10 + 0x1f1f1f1f]
and edx, 0x20202020
and r11d, 0x20202020
add r10d, 0x5050505
and edx, eax
not edx
or edx, r11d
or edx, r10d
and edx, ecx
mov dword [r8 - 4], edx
cmp rbx, r8
jne 0x42e6d2
mov eax, r9d
pop rbx
ret
push rsi
push rbx
test r9d, r9d
jle 0x42e79a
lea eax, [r9 - 1]
mov rcx, r8
shr eax, 2
lea rsi, [r8 + rax*4 + 4]
nop word cs:[rax + rax]
mov r10d, dword [rcx]
add rcx, 4
mov r11d, r10d
mov edx, r10d
mov ebx, r10d
and r11d, 0x1f1f1f1f
shr edx, 1
shr ebx, 2
lea eax, [r11 + 0x1f1f1f1f]
and edx, 0x20202020
and ebx, 0x20202020
add r11d, 0x5050505
and edx, eax
not edx
or edx, ebx
or edx, r11d
and edx, r10d
mov dword [rcx - 4], edx
cmp rsi, rcx
jne 0x42e750
mov r10d, dword [r8]
mov edx, r10d
mov eax, r10d
and edx, 0x1f1f1f1f
shr eax, 1
lea ecx, [rdx + 0x1f1f1f1f]
and eax, 0x20
add edx, 0x5050505
not edx
and eax, ecx
mov ecx, r10d
shr ecx, 2
and ecx, 0x20202020
not ecx
and eax, ecx
and eax, edx
or eax, r10d
mov dword [r8], eax
mov eax, r9d
pop rbx
pop rsi
ret
test r9d, r9d
jle 0x42e83d
lea eax, [r9 - 1]
shr eax, 2
lea r11, [r8 + rax*4 + 4]
mov eax, dword [r8]
add r8, 4
mov ecx, eax
mov edx, eax
and ecx, 0x1f1f1f1f
shr edx, 1
lea r10d, [rcx + 0x1f1f1f1f]
and edx, 0x20202020
add ecx, 0x5050505
not ecx
and edx, r10d
mov r10d, eax
shr r10d, 2
and r10d, 0x20202020
not r10d
and edx, r10d
and edx, ecx
xor edx, eax
mov dword [r8 - 4], edx
cmp r11, r8
jne 0x42e7f1
mov eax, r9d
ret
push rsi
push rbx
test r9d, r9d
je 0x42eead
movzx ecx, cl
lea r11d, [rcx + r9]
cmp r11d, 0xff
jg 0x42eead
test ecx, ecx
movzx ebx, byte [r8]
je 0x42eeaa
lea eax, [r9 - 1]
lea rsi, [r8 - 1]
lea r9d, [rcx + rax]
jmp 0x42ee68
cmp r10d, r9d
mov eax, r10d
je 0x42eeaa
lea r10d, [rax + 1]
cmp r10d, 0xfe
jg 0x42ee60
test eax, eax
js 0x42ee9f
movsxd rcx, eax
mov eax, eax
lea rdx, [r8 + rcx]
add rcx, rsi
sub rcx, rax
nop dword [rax + rax]
movzx eax, byte [rdx]
sub rdx, 1
mov byte [rdx + 2], al
cmp rdx, rcx
jne 0x42ee90
cmp r10d, r9d
mov byte [r8], bl
mov eax, r10d
jne 0x42ee68
mov r9d, r11d
mov eax, r9d
pop rbx
pop rsi
ret
push r12
push rbp
push rdi
push rsi
push rbx
movzx ecx, cl
cmp ecx, r9d
jg 0x42f158
lea esi, [rcx + r9]
cmp esi, 0xff
jg 0x42f158
test ecx, ecx
jle 0x42f155
lea ebx, [rcx - 1]
mov r10d, r9d
xor edx, edx
lea rbp, [r8 - 1]
add rbx, 1
jmp 0x42f0fd
add rdx, 1
add r10d, 1
cmp rdx, rbx
je 0x42f155
cmp r10d, 0xfe
mov r11d, edx
jg 0x42f0f0
cmp r10d, edx
jl 0x42f0f0
lea eax, [r10 - 1]
movzx edi, byte [r8 + rdx*2]
cmp edx, eax
jg 0x42f144
mov r12d, edx
cdqe
add r11d, r9d
not r12d
lea rcx, [r8 + rax]
add rax, rbp
add r11d, r12d
sub rax, r11
movzx r11d, byte [rcx]
sub rcx, 1
mov byte [rcx + 2], r11b
cmp rcx, rax
jne 0x42f133
mov byte [r8 + rdx], dil
add rdx, 1
add r10d, 1
cmp rdx, rbx
jne 0x42f0fd
mov r9d, esi
mov eax, r9d
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
ret
push rdi
push rsi
push rbx
sub rsp, 0x40
movsxd rbx, dword [rsp + 0x80]
lea eax, [rcx - 0x24]
mov r10, r9
movzx r11d, r8b
movzx r9d, dl
cmp eax, 0x59
ja case.0x42f230.37
lea rcx, [0x005430b0]
movsxd rax, dword [rcx + rax*4]
add rax, rcx
jmp rax
test ebx, ebx
jle case.0x42f230.37
lea eax, [rbx - 1]
lea rax, [r10 + rax + 1]
nop
cmp r9b, byte [r10]
jne 0x42f248
mov byte [r10], r11b
add r10, 1
cmp r10, rax
jne 0x42f240
mov eax, ebx
add rsp, 0x40
pop rbx
pop rsi
pop rdi
ret
lea ecx, [rbx - 1]
test ecx, ecx
jle case.0x42f230.37
movsxd rcx, ecx
lea eax, [rbx - 2]
add rcx, r10
movzx edx, byte [rcx]
lea r8, [r10 + rax + 1]
nop dword [rax + rax]
movzx eax, byte [r10]
mov byte [r10], dl
add r10, 1
cmp r10, r8
mov byte [rcx], al
mov edx, eax
jne 0x42f280
jmp case.0x42f230.37
lea eax, [rbx - 1]
test eax, eax
jle case.0x42f230.37
movsxd rdx, eax
lea r8, [r10 + rdx - 1]
lea rax, [r10 + rdx]
lea edx, [rbx - 2]
sub r8, rdx
nop dword [rax]
movzx ecx, byte [rax]
movzx edx, byte [r10]
sub rax, 1
mov byte [r10], cl
mov byte [rax + 1], dl
cmp rax, r8
jne 0x42f2c0
jmp case.0x42f230.37
movzx eax, r8b
movzx ecx, dl
mov r9d, ebx
mov r8, r10
mov edx, eax
add rsp, 0x40
pop rbx
pop rsi
pop rdi
jmp 0x42ee30
movzx eax, r8b
movzx ecx, dl
mov r9d, ebx
mov r8, r10
mov edx, eax
add rsp, 0x40
pop rbx
pop rsi
pop rdi
jmp 0x42f0b0
movzx ecx, dl
cmp ecx, ebx
jge case.0x42f230.37
movzx r8d, r8b
lea edx, [r8 + rcx]
mov eax, r8d
cmp ebx, edx
jl case.0x42f230.37
test r8d, r8d
je 0x42f371
lea rsi, [r10 + r9 + 1]
lea ecx, [r8 - 1]
lea rdx, [r10 + r9]
neg r9
add rsi, rcx
nop word cs:[rax + rax]
movzx ecx, byte [rdx]
add rdx, 1
mov byte [rdx + r9 - 1], cl
cmp rdx, rsi
jne 0x42f360
cmp r8d, ebx
jge 0x42f253
lea rcx, [r10 + r11 + 1]
not r8d
lea rdx, [r10 + r11]
add r8d, ebx
add rcx, r8
nop dword [rax]
mov byte [rdx], 0
add rdx, 1
cmp rdx, rcx
jne 0x42f390
jmp 0x42f253
movzx eax, r8b
movzx ecx, dl
mov r9d, ebx
mov r8, r10
mov edx, eax
add rsp, 0x40
pop rbx
pop rsi
pop rdi
jmp 0x42e6c0
mov edx, ebx
shr edx, 0x1f
add edx, ebx
sar edx, 1
test edx, edx
jle case.0x42f230.37
lea ecx, [rbx - 1]
sub edx, 1
movsxd rcx, ecx
lea r8, [r10 + rcx - 1]
lea rax, [r10 + rcx]
sub r8, rdx
nop word cs:[rax + rax]
movzx edx, byte [r10]
movzx ecx, byte [rax]
sub rax, 1
add r10, 1
mov byte [r10 - 1], cl
mov byte [rax + 1], dl
cmp rax, r8
jne 0x42f3f0
jmp case.0x42f230.37
movzx eax, r8b
movzx ecx, dl
mov r9d, ebx
mov r8, r10
mov edx, eax
add rsp, 0x40
pop rbx
pop rsi
pop rdi
jmp 0x42e7e0
lea eax, [rbx + rbx]
cmp eax, 0xff
jg case.0x42f230.37
sub ebx, 1
js 0x42f253
lea r8d, [rax - 2]
movsxd rcx, ebx
mov ebx, ebx
add rcx, r10
movsxd r8, r8d
lea r9, [r10 + r8 - 2]
lea rdx, [r10 + r8]
lea r8, [rbx + rbx]
sub r9, r8
nop word cs:[rax + rax]
movzx r8d, byte [rcx]
sub rdx, 2
sub rcx, 1
mov byte [rdx + 2], r8b
movzx r8d, byte [rcx + 1]
mov byte [rdx + 3], r8b
cmp rdx, r9
jne 0x42f470
jmp 0x42f253
movzx ecx, dl
lea eax, [rcx + 1]
imul eax, ebx
cmp eax, 0xff
jg case.0x42f230.37
xor esi, esi
test ecx, ecx
mov edi, ebx
je 0x42f253
lea edx, [rbx - 1]
lea rdx, [r10 + rdx + 1]
nop dword [rax + rax]
test ebx, ebx
mov r8, r10
movsxd r11, edi
jle 0x42f4e4
nop word [rax + rax]
movzx r9d, byte [r8]
add r8, 1
mov byte [r8 + r11 - 1], r9b
cmp r8, rdx
jne 0x42f4d0
add edi, ebx
add esi, 1
cmp ecx, esi
jne 0x42f4c0
jmp 0x42f253
movzx ecx, dl
cmp ecx, ebx
jge case.0x42f230.37
mov byte [r10 + r9], r8b
mov eax, ebx
jmp 0x42f253
movzx eax, r8b
movzx ecx, dl
mov r9d, ebx
mov r8, r10
mov edx, eax
add rsp, 0x40
pop rbx
pop rsi
pop rdi
jmp 0x42e5a0
cmp ebx, 1
jle case.0x42f230.37
movzx eax, byte [r10]
movzx edx, byte [r10 + 1]
mov byte [r10 + 1], al
mov byte [r10], dl
mov eax, ebx
jmp 0x42f253
movzx ecx, dl
cmp ecx, ebx
jg case.0x42f230.37
lea eax, [rbx + 1]
cmp eax, 0xff
jg case.0x42f230.37
lea edx, [rbx - 1]
cmp ecx, edx
jg 0x42f5a1
movsxd rdx, edx
lea rsi, [r10 + rdx - 1]
lea r11, [r10 + rdx]
mov edx, ecx
not edx
add edx, ebx
sub rsi, rdx
mov rcx, rsi
nop dword [rax + rax]
movzx edx, byte [r11]
sub r11, 1
mov byte [r11 + 2], dl
cmp r11, rcx
jne 0x42f590
mov byte [r10 + r9], r8b
jmp 0x42f253
movzx eax, r8b
movzx ecx, dl
mov r9d, ebx
mov r8, r10
mov edx, eax
add rsp, 0x40
pop rbx
pop rsi
pop rdi
jmp fcn.0042e990
cmp ebx, 0xff
jg case.0x42f230.37
movzx ecx, dl
mov r8d, ebx
mov rdx, r10
call fcn.0042e110
mov eax, ebx
jmp 0x42f253
lea eax, [rbx + rbx]
cmp eax, 0xff
jg case.0x42f230.37
mov dword [rsp + 0x20], ebx
mov r9d, ebx
mov r8, r10
xor edx, edx
mov rcx, r10
mov dword [rsp + 0x3c], eax
call fcn.0042e430
mov eax, dword [rsp + 0x3c]
jmp 0x42f253
movzx eax, r8b
movzx ecx, dl
mov r9d, ebx
mov r8, r10
mov edx, eax
add rsp, 0x40
pop rbx
pop rsi
pop rdi
jmp 0x42e610
lea eax, [rbx + 1]
cmp eax, 0xff
jg case.0x42f230.37
sub ebx, 1
js 0x42f675
movsxd r8, ebx
mov ebx, ebx
lea r9, [r10 + r8 - 1]
lea rcx, [r10 + r8]
sub r9, rbx
movzx r8d, byte [rcx]
sub rcx, 1
mov byte [rcx + 2], r8b
cmp rcx, r9
jne 0x42f664
mov byte [r10], dl
jmp 0x42f253
xor eax, eax
test ebx, ebx
je 0x42f253
mov edx, ebx
mov rcx, r10
add rsp, 0x40
pop rbx
pop rsi
pop rdi
jmp 0x42e0c0
test ebx, ebx
jle case.0x42f230.37
mov edx, ebx
mov rcx, r10
add rsp, 0x40
pop rbx
pop rsi
pop rdi
jmp 0x42e090
xor eax, eax
test ebx, ebx
je 0x42f253
movzx edx, dl
lea eax, [rdx + rbx]
cmp eax, 0xff
jg case.0x42f230.37
movsxd rcx, ebx
test edx, edx
movzx r9d, byte [r10 + rcx - 1]
je 0x42f253
lea r8d, [rdx - 1]
add r10, rcx
xor edx, edx
add r8, 1
nop dword [rax]
lea ecx, [rbx + rdx]
cmp ecx, 0xfe
jg 0x42f70f
mov byte [r10 + rdx], r9b
add rdx, 1
cmp rdx, r8
jne 0x42f700
jmp 0x42f253
movzx ecx, dl
cmp ecx, ebx
jg case.0x42f230.37
lea eax, [rcx + rbx]
cmp eax, 0xff
jg case.0x42f230.37
test ecx, ecx
jle 0x42f253
lea r8d, [rcx - 1]
mov r11d, ebx
movsxd r9, ebx
sub r11d, ecx
xor edx, edx
add r9, r10
add r8, 1
nop word [rax + rax]
lea ecx, [rbx + rdx]
cmp ecx, 0xfe
jg 0x42f77b
lea ecx, [r11 + rdx]
movsxd rcx, ecx
movzx ecx, byte [r10 + rcx]
mov byte [r9 + rdx], cl
add rdx, 1
cmp r8, rdx
jne 0x42f760
jmp 0x42f253
movzx ecx, dl
cmp ecx, ebx
jge case.0x42f230.37
mov rdx, r10
call fcn.0042df20
mov eax, ebx
jmp 0x42f253
movzx ecx, dl
cmp ecx, ebx
jge case.0x42f230.37
shr byte [r10 + r9], 1
mov eax, ebx
jmp 0x42f253
movzx ecx, dl
cmp ecx, ebx
jge case.0x42f230.37
movzx r8d, r8b
lea eax, [r8 + rcx]
cmp ebx, eax
jl case.0x42f230.37
mov eax, ebx
lea rsi, [r10 + 1]
sub eax, r8d
cmp ecx, eax
jge 0x42f82f
lea rsi, [r10 + 1]
mov edx, ecx
lea r8, [r9 + r11]
not edx
add r9, rsi
add edx, eax
add r8, r10
add r9, r11
neg r11
add rdx, r9
movzx ecx, byte [r8]
add r8, 1
mov byte [r8 + r11 - 1], cl
cmp r8, rdx
jne 0x42f815
cmp ebx, eax
jle 0x42f253
movsxd rdx, eax
sub ebx, 1
add rsi, rdx
sub ebx, eax
add r10, rdx
lea rdx, [rsi + rbx]
mov byte [r10], 0
add r10, 1
cmp r10, rdx
jne 0x42f841
jmp 0x42f253
movzx ecx, dl
cmp ecx, ebx
jge case.0x42f230.37
shl byte [r10 + r9], 1
mov eax, ebx
jmp 0x42f253
cmp ebx, 1
jle case.0x42f230.37
lea edx, [rbx - 2]
lea eax, [rbx - 1]
movsxd rdx, edx
cdqe
add rdx, r10
add r10, rax
movzx eax, byte [r10]
movzx ecx, byte [rdx]
mov byte [rdx], al
mov byte [r10], cl
mov eax, ebx
jmp 0x42f253
cmp ebx, 0xff
jg case.0x42f230.37
movzx eax, r8b
movzx ecx, dl
mov r9d, ebx
mov edx, eax
mov r8, r10
call fcn.0042df80
mov eax, ebx
jmp 0x42f253
movzx edx, dl
add edx, 1
cmp ebx, edx
jle case.0x42f230.37
movzx eax, byte [r10 + r9 + 1]
mov byte [r10 + r9], al
mov eax, ebx
jmp 0x42f253
movzx ecx, dl
cmp ecx, ebx
jge case.0x42f230.37
sub byte [r10 + r9], 1
mov eax, ebx
jmp 0x42f253
movzx eax, dl
cmp eax, ebx
jge case.0x42f230.37
test dl, dl
je case.0x42f230.37
movzx eax, byte [r10 + r9 - 1]
mov byte [r10 + r9], al
mov eax, ebx
jmp 0x42f253
movzx ecx, dl
cmp ecx, ebx
jge case.0x42f230.37
add byte [r10 + r9], 1
mov eax, ebx
jmp 0x42f253
movzx ecx, dl
cmp ecx, ebx
jge case.0x42f230.37
movzx r8d, r8b
cmp r8d, ebx
jge case.0x42f230.37
movzx eax, r9b
add rax, r10
add r10, r11
movzx edx, byte [rax]
movzx ecx, byte [r10]
mov byte [rax], cl
mov byte [r10], dl
mov eax, ebx
jmp 0x42f253
movzx eax, dl
cmp eax, ebx
jge case.0x42f230.37
mov ecx, eax
lea r8, [r10 + r9 + 1]
lea rdx, [r10 + r9]
not ecx
add ecx, ebx
add rcx, r8
mov byte [rdx], 0
add rdx, 1
cmp rcx, rdx
jne 0x42f9a2
jmp 0x42f253
lea eax, [rbx + 1]
cmp eax, 0xff
jg case.0x42f230.37
mov byte [r10 + rbx], dl
jmp 0x42f253
cmp ebx, 0xff
jg case.0x42f230.37
mov r8d, ebx
mov rdx, r10
mov ecx, 0x20
call fcn.0042e110
mov eax, ebx
jmp 0x42f253
movzx ecx, dl
cmp ecx, ebx
jge case.0x42f230.37
lea eax, [rbx - 1]
cmp ecx, eax
jge 0x42fa32
mov edx, ebx
lea r8, [r10 + r9]
sub edx, ecx
lea ecx, [rdx - 2]
lea rdx, [r10 + r9 + 1]
add rcx, rdx
nop dword [rax + rax]
movzx edx, byte [r8 + 1]
add r8, 1
mov byte [r8 - 1], dl
cmp rcx, r8
jne 0x42fa20
mov byte [r10 + rbx - 1], 0
jmp 0x42f253
movzx eax, r8b
movzx ecx, dl
mov r9d, ebx
mov r8, r10
mov edx, eax
add rsp, 0x40
pop rbx
pop rsi
pop rdi
jmp 0x42e730
xor eax, eax
test ebx, ebx
jle 0x42f253
lea esi, [rbx - 1]
lea rdi, [r10 + 1]
mov rdx, r10
xor eax, eax
mov r8, rsi
add rsi, rdi
nop dword [rax]
movzx ecx, byte [rdx]
cmp r9b, cl
je 0x42fa92
movsxd r11, eax
add eax, 1
mov byte [r10 + r11], cl
add rdx, 1
cmp rsi, rdx
jne 0x42fa80
cmp ebx, eax
jle 0x42f253
movsxd rdx, eax
sub r8d, eax
add r10, rdx
add rdx, rdi
add rdx, r8
mov byte [r10], 0
add r10, 1
cmp rdx, r10
jne 0x42fab2
jmp 0x42f253