Function at 0x140104c90
Capabilities:
Encode data using xor

Disassembly:
sub rsp, 0xa8
mov dword [rsp + 0x74], r8d
mov qword [rsp + 0x78], rdx
mov qword [rsp + 0x68], rcx
call fcn.1401051c0
mov r8d, dword [rsp + 0x74]
mov rcx, rax
mov rax, qword [rsp + 0x78]
mov qword [rsp + 0x80], rcx
mov ecx, 8
cqo
idiv rcx
mov rcx, rax
xor eax, eax
test rcx, rcx
cmovg rax, rcx
mov qword [rsp + 0x88], rax
xor eax, eax
mov rcx, rax
mov qword [rsp + 0x90], rcx
mov qword [rsp + 0x98], rax
mov dword [rsp + 0xa4], r8d
mov r8, qword [rsp + 0x88]
mov rax, qword [rsp + 0x90]
mov rdx, qword [rsp + 0x98]
mov ecx, dword [rsp + 0xa4]
mov dword [rsp + 0x44], ecx
mov qword [rsp + 0x48], rdx
mov qword [rsp + 0x50], rax
cmp rdx, r8
mov dword [rsp + 0x5c], ecx
mov qword [rsp + 0x60], rax
je 0x14010503e
mov rdx, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x68]
call fcn.1401051e0
mov rcx, qword [rsp + 0x80]
mov edx, eax
mov eax, dword [rsp + 0x44]
mov dword [rsp + 0x3c], edx
cmp byte [rcx], 0
mov dword [rsp + 0x40], eax
jne 0x1401051ab
mov rcx, qword [rsp + 0x68]
mov rdx, qword [rsp + 0x50]
and rdx, rdx
xor rdx, 0xffffffffffffffff
mov eax, 4
and rax, 4
xor rax, 0xffffffffffffffff
and rdx, rax
xor rdx, 0xffffffffffffffff
call fcn.1401051e0
mov rcx, qword [rsp + 0x80]
mov edx, eax
mov eax, dword [rsp + 0x44]
mov dword [rsp + 0x38], edx
cmp byte [rcx], 0
mov dword [rsp + 0x40], eax
jne 0x1401051ab
mov rdx, qword [rsp + 0x50]
mov r8d, dword [rsp + 0x38]
mov ecx, dword [rsp + 0x44]
mov eax, dword [rsp + 0x3c]
xor eax, ecx
mov ecx, eax
xor ecx, 0xffffffff
mov r10d, 0xd64615fb
xor r10d, 0x29b9ea04
mov r9d, eax
xor r9d, r10d
and ecx, r9d
mov r9d, 0xff
or r9d, 0xff
xor r9d, 0xffffffff
or ecx, r9d
xor ecx, 0xffffffff
mov ecx, ecx
mov r9d, ecx
lea rcx, [0x1401edaa0]
mov r10d, dword [rcx + r9*4 + 0x1c00]
mov ecx, eax
shr ecx, 8
and ecx, 0xff
mov ecx, ecx
mov r9d, ecx
lea rcx, [0x1401edaa0]
mov r9d, dword [rcx + r9*4 + 0x1800]
mov r11d, r9d
xor r11d, r10d
xor r11d, 0xffffffff
mov ecx, r10d
and ecx, r11d
shl ecx, 1
sub ecx, r10d
sub r9d, ecx
mov r10d, eax
shr r10d, 0x10
mov r11d, 0x97a58c46
xor r11d, 0x97a58cb9
mov ecx, r10d
and ecx, r11d
xor ecx, 0xffffffff
xor r10d, 0xffffffff
mov r11d, 0xffffffff
xor r11d, 0xff
or r10d, r11d
xor ecx, 0xffffffff
xor r10d, 0xffffffff
or ecx, r10d
mov ecx, ecx
mov r10d, ecx
lea rcx, [0x1401edaa0]
mov r10d, dword [rcx + r10*4 + 0x1400]
mov r11d, r9d
xor r11d, 0xffffffff
mov ecx, r10d
and ecx, r11d
xor r10d, 0xffffffff
and r9d, r10d
or ecx, r9d
shr eax, 0x18
mov eax, eax
mov r9d, eax
lea rax, [0x1401edaa0]
mov r9d, dword [rax + r9*4 + 0x1000]
mov eax, ecx
xor eax, 0xffffffff
mov r10d, ecx
xor r10d, 0xffffffff
or eax, r10d
and eax, r9d
xor eax, 0xffffffff
and r9d, r9d
xor r9d, 0xffffffff
and ecx, r9d
xor ecx, 0xffffffff
and eax, ecx
mov ecx, 0x73932dc4
xor ecx, 0x8c6cd23b
xor eax, ecx
mov ecx, r8d
xor ecx, 0xffffffff
mov r9d, 0xffffffff
xor r9d, 0xff
or ecx, r9d
mov r10d, 0x22314e73
xor r10d, 0x22314e8c
mov r9d, r8d
and r9d, r10d
mov r10d, 0x28f1776b
xor r10d, 0xd70e8894
xor r9d, r10d
mov r10d, 0x85f0b14a
xor r10d, 0x7a0f4eb5
xor ecx, r10d
xor r9d, 0xffffffff
or ecx, r9d
mov ecx, ecx
mov r9d, ecx
lea rcx, [0x1401edaa0]
xor eax, dword [rcx + r9*4 + 0xc00]
mov dword [rsp + 0x34], eax
mov ecx, 0x31f9ca15
xor ecx, 0x31f9ca1d
mov eax, r8d
shr eax, cl
mov ecx, dword [rsp + 0x34]
and eax, 0xff
mov eax, eax
mov r9d, eax
lea rax, [0x1401edaa0]
mov r9d, dword [rax + r9*4 + 0x800]
mov eax, ecx
or eax, eax
xor eax, 0xffffffff
mov r10d, r9d
xor r10d, 0xffffffff
mov r11d, r9d
xor r11d, 0xffffffff
and r10d, r11d
or eax, r10d
xor eax, 0xffffffff
mov r10d, 0x72ce2eb1
xor r10d, 0x8d31d14e
xor ecx, r10d
xor r9d, 0xffffffff
and ecx, r9d
or eax, ecx
xor eax, 0xffffffff
mov ecx, r8d
shr ecx, 0x10
and ecx, 0xff
mov ecx, ecx
mov r9d, ecx
lea rcx, [0x1401edaa0]
xor eax, dword [rcx + r9*4 + 0x400]
mov ecx, 0xc0f0d7f0
xor ecx, 0xc0f0d7e8
shr r8d, cl
mov rcx, qword [rsp + 0x48]
mov r8d, r8d
mov r9d, r8d
lea r8, [0x1401edaa0]
xor eax, dword [r8 + r9*4]
add rdx, 8
movabs r8, 0x21cfcb9a3367ed13
movabs r9, 0x21cfcb9a3367ed12
xor r8, r9
add rcx, r8
mov qword [rsp + 0x90], rdx
mov qword [rsp + 0x98], rcx
mov dword [rsp + 0xa4], eax
jmp 0x140104cfb
mov eax, dword [rsp + 0x5c]
mov rcx, qword [rsp + 0x60]
mov qword [rsp + 0x28], rcx
mov dword [rsp + 0x30], eax
mov ecx, dword [0x1401ced30]
mov edx, dword [0x1401ced34]
xor edx, 0xf6408142
mov eax, ecx
xor eax, 0xffffffff
and eax, edx
xor edx, 0xffffffff
and ecx, edx
sub ecx, eax
mov eax, ecx
xor eax, 0xffffffff
mov edx, 0xffffffff
xor edx, 0xcf70566e
or eax, edx
and ecx, 0xcf70566e
xor ecx, 0xffffffff
xor eax, 0xffffffff
xor ecx, 0xffffffff
or eax, ecx
or eax, 0xf54ed853
imul eax, eax, 0xed3e3afe
mov ecx, 0x32ccbdd0
xor ecx, 0xc31bbadc
cmp eax, ecx
jae 0x1401051b7
mov rdx, qword [rsp + 0x28]
mov r8, qword [rsp + 0x78]
mov eax, dword [0x1401ced38]
imul eax, dword [0x1401ced3c]
mov ecx, 0xb591df01
xor ecx, 0x972abf3c
sub eax, ecx
imul eax, eax, 0xf1a4be65
add eax, 0x6feda7c
sub eax, 0x1c8d29d
sub eax, 0x6feda7c
mov ecx, 0xe0356aee
xor ecx, 0xd819d055
cmp rdx, r8
setl dl
mov byte [rsp + 0x27], dl
cmp eax, ecx
je 0x1401050b1
mov eax, dword [rsp + 0x30]
mov cl, byte [rsp + 0x27]
test cl, 1
mov dword [rsp + 0x40], eax
jne 0x140105121
jmp 0x1401051ab
mov rax, qword [rsp + 0x28]
mov r8d, dword [rsp + 0x30]
mov rcx, qword [rsp + 0x68]
mov dl, byte [rcx + rax]
mov r9b, r8b
mov cl, dl
or cl, cl
xor cl, 0xff
mov r10b, r9b
xor r10b, 0xff
mov r11b, r9b
xor r11b, 0xff
and r10b, r11b
or cl, r10b
xor cl, 0xff
xor dl, 0xff
xor r9b, 0xff
and dl, r9b
or cl, dl
xor cl, 0xff
movzx ecx, cl
mov edx, ecx
lea rcx, [0x1401edaa0]
mov ecx, dword [rcx + rdx*4]
shr r8d, 8
mov edx, ecx
and edx, r8d
shl edx, 1
add ecx, r8d
sub ecx, edx
movabs rdx, 0x6e206341f0d1edcd
movabs r8, 0x6e206341f0d1edcc
xor rdx, r8
add rax, rdx
mov dword [rsp + 0x5c], ecx
mov qword [rsp + 0x60], rax
jmp 0x14010503e
mov eax, dword [rsp + 0x40]
add rsp, 0xa8
ret
xchg ecx, eax
invalid