Function at 0x140053600
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
xor r11d, r11d
mov rax, r8
sub rax, 0xf
cmovae r11, rax
lea rsi, [rdx + 7]
and rsi, 0xfffffffffffffff8
sub rsi, rdx
mov r9, rdx
nop dword [rax + rax]
mov eax, dword [0x141dc7fb8]
sub eax, dword [0x141dc7fbc]
xor eax, 0x40900090
or eax, 0xad6ffb2f
cmp eax, 0xd6277e7b
jb 0x140053630
test r8, r8
je 0x140053d90
xor edi, edi
mov r14d, 0x94c3fd5f
mov r15d, 0x97ede65f
movabs r12, 0x8080808080808080
xor r10d, r10d
nop word cs:[rax + rax]
mov eax, dword [0x141dc7fc0]
or eax, dword [0x141dc7fc4]
add eax, 0x9b5047a3
cmp eax, 0xb4b1b3df
ja 0x140053680
movzx r13d, byte [r9 + r10]
test r13b, r13b
js 0x140053780
mov eax, dword [0x141dc7fd0]
xor eax, dword [0x141dc7fd4]
imul eax, eax, 0x597be9b
add eax, 0xf3917250
xor eax, 0x72735d15
cmp eax, 0x4125d44b
jb 0x1400536a6
mov rax, rsi
sub rax, r10
nop
mov edx, dword [0x141dc7fd8]
imul edx, dword [0x141dc7fdc]
or edx, 0xefcb63ac
imul rdx, rdx, 0x17720fd
shr rdx, 0x37
imul edx, edx, 0x18279daa
cmp edx, 0x1ba41e71
jb 0x1400536d0
test al, 7
je 0x140053734
mov edx, dword [0x141dc7fc8]
sub edx, dword [0x141dc7fcc]
xor edx, 0xe9400003
or edx, 0x1693e2dc
add edx, 0xf4759e74
lea rax, [r10 + 1]
cmp edx, 0x6e4b76e1
ja 0x140053700
jmp 0x140053d50
add r10, 0x10
cmp r10, r11
jae 0x140053747
mov rax, qword [r9 + r10 + 8]
or rax, qword [r9 + r10]
test rax, r12
je 0x140053730
mov rax, r10
cmp r10, r8
jae 0x140053d50
nop word cs:[rax + rax]
cmp byte [r9 + rax], 0
js 0x140053d50
inc rax
nop
test dil, dil
jne 0x140053770
cmp rax, r8
jne 0x140053760
jmp 0x140053d90
mov eax, dword [0x141dc7fe8]
xor edx, edx
div dword [0x141dc7fec]
imul rax, rax, 0x288fb88b
shr rax, 0x3d
or eax, 0x540e3080
imul eax, eax, 0x944fe566
cmp eax, 0xad1d21b4
ja 0x140053780
lea rax, [0x141db95d8]
movzx eax, byte [r13 + rax]
nop dword [rax + rax]
mov edx, dword [0x141dc7ff0]
add edx, dword [0x141dc7ff4]
and edx, 0x5854401
add edx, 0xeba12d3e
cmp edx, 0xaecbe043
jb 0x1400537c0
mov bpl, 1
cmp eax, 4
je 0x140053880
cmp eax, 3
je 0x140053953
cmp eax, 2
jne 0x140053ddf
lea rax, [r10 + 1]
nop word cs:[rax + rax]
mov edx, dword [0x141dc7ff8]
and edx, dword [0x141dc7ffc]
and edx, 0x2d8379f7
imul edx, edx, 0xef3f3a88
cmp edx, 0x44761b9b
je 0x140053810
cmp rax, r8
jae 0x140053ddb
movzx ebx, byte [r9 + rax]
nop
mov edx, dword [0x141dc8018]
imul edx, dword [0x141dc801c]
and edx, 0x5cbe596a
imul edx, edx, 0x73c76854
add edx, 0x607025ef
cmp edx, 0xc2e3138f
ja 0x140053840
mov dl, 1
cmp bl, 0xbf
jle 0x140053d20
jmp 0x140053de9
mov eax, dword [0x141dc8008]
xor eax, dword [0x141dc800c]
add eax, 0xc33a09a1
or eax, 0x9e1a4bdd
imul rax, rax, 0x92bae2d
shr rax, 0x3b
cmp eax, 0xd19b2ffd
ja 0x140053880
lea rax, [r10 + 1]
test dil, dil
jne 0x1400538ac
nop word cs:[rax + rax]
mov edx, dword [0x141dc8010]
imul edx, dword [0x141dc8014]
or edx, 0xf6fdeff5
cmp edx, 0x41d7cda9
je 0x1400538c0
cmp rax, r8
jae 0x140053ddb
mov edx, dword [0x141dc8080]
or edx, dword [0x141dc8084]
imul edx, edx, 0x15d9d380
add edx, 0xd83ce680
xor edx, 0xd183f73a
cmp edx, 0x767bdc76
ja 0x1400538e4
movzx eax, byte [r9 + rax]
nop
mov edx, dword [0x141dc8088]
mov ebx, dword [0x141dc808c]
add edx, ebx
add edx, 0xa4982f2d
cmp edx, 0x295014f4
jb 0x140053910
cmp r13, 0xf0
je 0x140053ae9
cmp r13d, 0xf4
jne 0x140053af4
cmp al, 0x8f
jle 0x140053b10
jmp 0x140053ddf
lea rax, [r10 + 1]
nop word [rax + rax]
test dil, dil
jne 0x140053960
nop word cs:[rax + rax]
mov edx, dword [0x141dc8000]
or edx, dword [0x141dc8004]
imul edx, edx, 0x4f1d501d
add edx, 0xb99f3789
or edx, 0xbe249e41
cmp edx, 0x22f7f514
jb 0x140053970
cmp rax, r8
jae 0x140053ddb
nop
mov edx, dword [0x141dc8028]
sub edx, dword [0x141dc802c]
add edx, 0xeec0a4cd
xor edx, 0x3e9eda5
imul rdx, rdx, 0x533b7fd5
shr rdx, 0x3e
cmp edx, 0x72bc8cb2
ja 0x1400539a0
movzx ebx, byte [r9 + rax]
cmp r13d, 0xe0
je 0x140053a20
cmp r13d, 0xed
jne 0x140053a90
mov eax, dword [0x141dc8048]
mov edx, dword [0x141dc804c]
add eax, edx
add eax, 0x3be1719e
and eax, 0x2fed11ea
imul eax, eax, 0xfef9e1e5
cmp eax, 0xe60196b9
je 0x1400539e6
cmp bl, 0x9f
jle 0x140053cc1
jmp 0x140053ddf
mov eax, dword [0x141dc8038]
imul eax, dword [0x141dc803c]
imul eax, eax, 0x4b08831b
or eax, 0xf592de30
and eax, 0xffdfff3d
cmp eax, 0x5950db90
je 0x140053a20
and bl, 0xe0
nop word [rax + rax]
mov eax, dword [0x141dc8040]
xor eax, dword [0x141dc8044]
imul rdx, rax, 0x1ff8df33
shr rdx, 0x20
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 0x1f
or eax, 0xf77ff7fc
cmp eax, 0x5e4546d0
je 0x140053a50
cmp bl, 0xa0
je 0x140053cc1
jmp 0x140053ddf
mov eax, dword [0x141dc8030]
xor edx, edx
div dword [0x141dc8034]
xor eax, 0xb0eb0f26
imul eax, eax, 0x1feb648e
cmp eax, 0xd57236c1
je 0x140053a90
lea eax, [r13 + 0x1f]
cmp al, 0xc
jae 0x140053c5e
nop dword [rax]
mov eax, dword [0x141dc8078]
xor eax, dword [0x141dc807c]
imul eax, eax, 0xc26ba6c5
imul rax, r15
shr rax, 0x3d
and eax, 1
cmp eax, 0x2e73c10c
je 0x140053ac0
jmp 0x140053cb8
add al, 0x70
cmp al, 0x30
jb 0x140053b10
jmp 0x140053ddf
lea edx, [r13 + 0xf]
cmp dl, 2
ja 0x140053ddf
cmp al, 0xc0
jge 0x140053ddf
nop dword [rax]
mov eax, dword [0x141dc8090]
add eax, dword [0x141dc8094]
imul eax, eax, 0x510071d5
add eax, 0x91460c52
cmp eax, 0xfb4cb74a
ja 0x140053b10
lea rbx, [r10 + 2]
cmp rbx, r8
jae 0x140053ddb
nop dword [rax + rax]
mov eax, dword [0x141dc8098]
xor edx, edx
div dword [0x141dc809c]
or eax, 0xe999cd4
imul eax, eax, 0x53fd73ad
cmp eax, 0xd90c2ca4
je 0x140053b40
mov eax, dword [0x141dc80a0]
xor eax, dword [0x141dc80a4]
imul eax, eax, 0xbb36b529
add eax, 0x379fe81c
cmp eax, 0x8e81628c
jb 0x140053b60
cmp byte [r9 + rbx], 0xbf
jg 0x140053de3
nop dword [rax]
test dil, dil
jne 0x140053b90
lea rax, [r10 + 3]
nop dword [rax]
mov edx, dword [0x141dc80a8]
or edx, dword [0x141dc80ac]
and edx, 0x7378b86
add edx, 0xeb6599d8
or edx, 0xec5cb70b
cmp edx, 0xa664e8bd
jb 0x140053ba0
nop word cs:[rax + rax]
mov edx, dword [0x141dc80b0]
add edx, dword [0x141dc80b4]
and edx, 0x4bfdbb15
imul edx, edx, 0xcc5295c2
cmp edx, 0xdf830941
je 0x140053bd0
cmp rax, r8
jae 0x140053ddb
nop dword [rax]
mov edx, dword [0x141dc80b8]
or edx, dword [0x141dc80bc]
imul rdx, r14
shr rdx, 0x3e
imul edx, edx, 0xad94d2ae
and edx, 0x33447a36
cmp edx, 0x281f144c
je 0x140053c00
movzx edx, byte [r9 + rax]
nop dword [rax]
mov ebx, dword [0x141dc80c0]
add ebx, dword [0x141dc80c4]
and ebx, 0xe8fdd94
add ebx, 0x9058fbeb
cmp ebx, 0x4e19b396
jb 0x140053c30
cmp dl, 0xbf
jle 0x140053d20
jmp 0x140053de7
mov eax, dword [0x141dc8068]
mov edx, dword [0x141dc806c]
add eax, edx
add eax, 0x18d6a48f
and eax, 0x3fa6fd94
cmp eax, 0x26413a09
je 0x140053c5e
and r13b, 0xfe
nop word cs:[rax + rax]
mov eax, dword [0x141dc8070]
imul eax, dword [0x141dc8074]
add eax, 0x2f94031f
xor eax, 0x8a64bc7
cmp eax, 0x90f48551
ja 0x140053c90
cmp r13b, 0xee
jne 0x140053ddf
cmp bl, 0xc0
jge 0x140053ddf
mov eax, dword [0x141dc8050]
xor edx, edx
div dword [0x141dc8054]
nop
mov eax, dword [0x141dc8058]
or eax, dword [0x141dc805c]
add eax, 0x851725a3
xor eax, 0xb7a7e0e3
cmp eax, 0x2a02b134
jb 0x140053cd0
lea rax, [r10 + 2]
mov edx, dword [0x141dc8060]
or edx, dword [0x141dc8064]
and edx, 0x480
cmp edx, 0x270f3af0
je 0x140053cf1
cmp rax, r8
jae 0x140053ddb
cmp byte [r9 + rax], 0xbf
jg 0x140053de3
nop
mov edx, dword [0x141dc8020]
imul edx, dword [0x141dc8024]
or edx, 0x15bd2284
imul edx, edx, 0xe5972cb8
cmp edx, 0xa3ede075
je 0x140053d20
inc rax
nop word cs:[rax + rax]
mov edx, dword [0x141dc7fe0]
xor edx, dword [0x141dc7fe4]
imul edx, edx, 0x98af4c16
imul rdx, rdx, 0x2f362eb1
shr rdx, 0x3d
cmp edx, 0x2c91604f
ja 0x140053d50
mov r10, rax
cmp rax, r8
jb 0x140053680
nop word cs:[rax + rax]
mov eax, dword [0x141dc80c8]
imul eax, dword [0x141dc80cc]
or eax, 0xd07e4828
shr eax, 2
imul rax, rax, 0x16edcc57
shr rax, 0x33
add eax, 0x383bcb14
cmp eax, 0x2bdb9de9
jb 0x140053d90
mov qword [rcx + 8], r9
mov eax, dword [0x141dc80d0]
add eax, dword [0x141dc80d4]
imul eax, eax, 0xf31930f4
cmp eax, 0x2ee158d6
je 0x140053e2f
jmp 0x140053e0d
xor ebp, ebp
jmp 0x140053de9
mov dl, 1
jmp 0x140053de9
mov dl, 2
jmp 0x140053de9
mov dl, 3
mov eax, dword [0x141dc80e0]
or eax, dword [0x141dc80e4]
and eax, 0xc0995509
add eax, 0xa9519226
xor eax, 0x806e7509
cmp eax, 0xc46d6d83
ja 0x140053e66
jmp 0x140053e39
mov eax, dword [0x141dc80d8]
add eax, dword [0x141dc80dc]
imul eax, eax, 0xf984fa69
and eax, 0x76fd007d
mov qword [rcx + 0x10], r8
cmp eax, 0xfb969b82
jne 0x140053e35
mov qword [rcx + 0x10], r8
jmp 0x140053e0d
xor eax, eax
jmp 0x140053e78
mov eax, dword [0x141dc80e8]
xor eax, dword [0x141dc80ec]
or eax, 0x960e98c5
add eax, 0xf7fccd62
and eax, 0x8398215d
mov qword [rcx + 8], r10
mov byte [rcx + 0x10], bpl
mov byte [rcx + 0x11], dl
cmp eax, 0x125d3e0a
jne 0x140053e73
mov qword [rcx + 8], r10
mov byte [rcx + 0x10], bpl
mov byte [rcx + 0x11], dl
jmp 0x140053e39
mov eax, 1
mov qword [rcx], rax
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret