Function at 0x14022d520
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x58
mov r8, rdx
mov rsi, rcx
nop word cs:[rax + rax]
mov eax, dword [0x1415ae970]
mov ecx, dword [0x1415ae974]
mov edx, eax
not edx
and edx, ecx
mov r9d, ecx
not r9d
and r9d, eax
imul r9d, edx
mov edx, eax
and edx, ecx
or eax, ecx
imul eax, edx
add eax, r9d
imul eax, eax, 0x68907a6b
imul rax, rax, 0x13e2c0d
shr rax, 0x37
imul eax, eax, 0xdad0a233
cmp eax, 0xf2d04259
ja 0x14022d540
nop dword [rax]
mov eax, dword [0x1415ae978]
sub eax, dword [0x1415ae97c]
add eax, 0x337cc246
xor eax, 0x5bd6b106
cmp eax, 0x3dc4e2a
jb 0x14022d590
cmp r8, 0xffffffffffffffff
je 0x14022d88a
mov eax, dword [0x1415ae980]
xor edx, edx
div dword [0x1415ae984]
mov ecx, 0xbe44e657
inc r8
nop dword [rax]
mov eax, dword [0x1415ae988]
xor eax, dword [0x1415ae98c]
mov edx, eax
and edx, 0x184ab52d
add edx, edx
neg edx
add edx, eax
add edx, 0x184ab52d
imul rdx, rcx
shr rdx, 0x3d
mov rax, qword [rsi]
lea r9, [rax + rax]
cmp r9, r8
cmovbe r9, r8
cmp edx, 0xee9f8466
je 0x14022d5d0
movabs rdx, 0x555555555555555
xor ecx, ecx
nop word [rax + rax]
cmp r9, 5
mov r14d, 4
cmovae r14, r9
test cl, cl
jne 0x14022d620
mov r8d, r14d
not r8d
and r8d, 0x18
mov rcx, r14
and rcx, 0xffffffffffffffe7
imul rcx, r8
mov r8d, r14d
and r8d, 0x18
mov rdi, r14
or rdi, 0x18
imul rdi, r8
xor ebx, ebx
cmp r14, rdx
setbe bl
test rax, rax
je 0x14022d6b0
shl rax, 3
lea r8, [rax + rax*2]
nop
mov eax, dword [0x1415ae990]
xor edx, edx
div dword [0x1415ae994]
add eax, 0x60a15f79
or eax, 0xc0e2f1ba
imul rax, rax, 0x18975597
shr rax, 0x3a
cmp eax, 0x4a5c7bfc
je 0x14022d670
mov rax, qword [rsi + 8]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x38], r8
mov r15d, 8
jmp 0x14022d6b3
xor r15d, r15d
add rdi, rcx
shl rbx, 3
mov eax, dword [0x1415ae998]
mov ecx, dword [0x1415ae99c]
add eax, ecx
add eax, 0x9ba79488
xor eax, 0x36bdfd2c
mov ecx, 0xc0923887
imul rcx, rax
shr rcx, 0x3d
cmp ecx, 0x4bd82eaf
ja 0x14022d731
mov eax, dword [0x1415ae9a0]
xor eax, dword [0x1415ae9a4]
or eax, 0x49b03802
mov ebp, eax
xor ebp, 0x5960651a
add ebp, eax
and eax, 0x269f9ae5
sub ebp, eax
and ebp, 0x615025fd
mov qword [rsp + 0x30], r15
lea rcx, [rsp + 0x40]
lea r9, [rsp + 0x28]
mov rdx, rbx
mov r8, rdi
call fcn.140219c20
cmp ebp, 0x71b8828d
jbe 0x14022d74d
mov qword [rsp + 0x30], r15
lea rcx, [rsp + 0x40]
lea r9, [rsp + 0x28]
mov rdx, rbx
mov r8, rdi
call fcn.14013a410
jmp 0x14022d6e7
cmp qword [rsp + 0x40], 0
jne 0x14022d820
mov eax, dword [0x1415ae9d0]
xor edx, edx
div dword [0x1415ae9d4]
and eax, 0x9195020e
or eax, 0x4660edf1
mov ecx, 0xb508c0e1
imul rcx, rax
shr rcx, 0x3d
cmp ecx, 0xa0da826e
nop word cs:[rax + rax]
mov eax, dword [0x1415ae9d8]
mov ecx, dword [0x1415ae9dc]
mov edx, ecx
not edx
mov r8d, eax
and r8d, edx
or edx, eax
not edx
imul edx, r8d
mov r8d, eax
and r8d, ecx
or eax, ecx
imul eax, r8d
add eax, edx
mov ecx, eax
xor ecx, 0xb324ac81
xor eax, 0xc020320
and eax, 0xcdb037c
and ecx, 0xf324fc83
sub ecx, eax
add ecx, 0x6bbe6368
cmp ecx, 0x59f9ca7c
jb 0x14022d790
mov rax, qword [rsp + 0x48]
mov qword [rsi + 8], rax
mov qword [rsi], r14
xor eax, eax
nop word cs:[rax + rax]
test al, al
jne 0x14022d800
add rsp, 0x58
pop rbx
pop rbp
pop rdi
pop rsi
pop r14
pop r15
ret
mov eax, dword [0x1415ae9a8]
xor edx, edx
div dword [0x1415ae9ac]
or eax, 0x5d485b20
and eax, 0x5dcc5bf0
cmp eax, 0x29b71084
jb 0x14022d820
nop
mov eax, dword [0x1415ae9b0]
xor edx, edx
div dword [0x1415ae9b4]
mov ecx, eax
xor ecx, 0x9a67b8a
xor eax, 0xf6598475
mov edx, eax
and edx, 0xd50272b
and ecx, 0x32afd8d4
imul ecx, edx
mov edx, eax
and edx, 0x32afd8d4
or eax, 0x32afd8d4
imul eax, edx
add eax, ecx
and eax, 0x26b08da8
cmp eax, 0x8539a471
ja 0x14022d840
mov eax, dword [0x1415ae9b8]
or eax, dword [0x1415ae9bc]
imul eax, eax, 0x9340eecc
add eax, 0xeaab5ae4
mov ecx, eax
not ecx
mov edx, eax
and edx, 0x18ab796c
and ecx, 0xe7548691
imul ecx, edx
mov edx, eax
and edx, 0xe7548690
or eax, 0xe7548691
imul eax, edx
add eax, ecx
cmp eax, 0xb6a3b333
je 0x14022d908
mov eax, dword [0x1415ae9c0]
mov ecx, dword [0x1415ae9c4]
xor ecx, eax
not ecx
and ecx, eax
add ecx, 0xb2f64f10
mov eax, ecx
and eax, 0x2e78eafc
or ecx, 0x2e78eafc
add ecx, eax
mov eax, ecx
xor eax, 0x749d8be5
and eax, ecx
ud2
ud2