Function at 0x140117420
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rsi
push rdi
push rbx
sub rsp, 0x58
lea rbp, [rsp + 0x50]
mov qword [rbp], 0xfffffffffffffffe
mov rsi, rcx
mov eax, dword [0x14055bcc8]
mov ecx, dword [0x1404fb740]
neg ecx
add ecx, eax
add ecx, 0x30f7681e
imul ecx, eax
test cl, 1
je 0x14011748d
lea rdi, [rbp - 8]
mov bl, 1
nop dword [rax]
mov dword [rsp + 0x20], 0xe8e2b02
mov rcx, rdi
xor edx, edx
mov r8d, 0xa05fc780
mov r9d, 0x2fcbfbf8
call fcn.1400a8e10
mov rax, qword [0x14055bcf0]
mov qword [rbp - 0x10], rax
test bl, bl
je 0x140117460
mov dword [rsp + 0x20], 0xe8e2b02
lea rcx, [rbp - 8]
xor edx, edx
mov r8d, 0xa05fc780
mov r9d, 0x2fcbfbf8
call fcn.1400a8e10
mov rax, qword [0x14055bcf0]
mov qword [rbp - 0x10], rax
cmp qword [0x14055bcd8], 0
jne 0x1401175cd
mov dword [rsp + 0x20], 0xe8e2b02
lea rcx, [rbp - 0x20]
xor edx, edx
mov r8d, 0xa05fc780
mov r9d, 0x2fcbfbf8
call fcn.1400a8e10
cmp qword [0x14055bcd8], 0
jne 0x1401175c4
mov eax, dword [0x14055bccc]
cmp eax, 0x5b
jle 0x14011759f
lea rdi, [0x140119890]
nop dword [rax + rax]
mov edx, dword [0x14055fee0]
mov eax, dword [0x1404fb740]
mov ecx, eax
sub ecx, edx
add ecx, 0xcf0897e1
add eax, 0xcf0897e2
xor eax, ecx
mov r8d, eax
not r8d
and r8d, ecx
lea eax, [rax + r8*2]
mov r8d, edx
sub r8d, eax
imul r8d, eax
mov ecx, edx
sub ecx, r8d
imul ecx, r8d
mov eax, edx
shl eax, cl
sub eax, edx
sub eax, edx
mov r8d, edx
mov ecx, eax
shl r8d, cl
add r8d, edx
mov dword [0x14055fee0], r8d
movsxd rbx, r8d
mov ecx, 0x57
call fcn.1403c4b54
mov qword [0x14055bca8], rax
mov rcx, rdi
call fcn.1403e5350
mov qword [0x14055bcd8], rbx
mov eax, dword [0x14055bcc8]
lea ecx, [rax + 1]
imul ecx, eax
test cl, 1
jne 0x140117510
movsxd rax, dword [0x14055fee0]
mov ecx, 0xcf0897e2
add ecx, dword [0x1404fb740]
movsxd rcx, ecx
add rcx, rax
mov dword [0x14055fee0], ecx
mov qword [0x14055bcd8], rcx
lea rcx, [rbp - 0x20]
call fcn.1400a7ed0
lea rax, [fcn.140117420]
lea ecx, [rax + rax]
add ecx, 0x2400
mov edx, ecx
not edx
nop word cs:[rax + rax]
mov r8d, dword [0x14055bcc8]
lea r9d, [r8 + 1]
imul r9d, r8d
test r9b, 1
jne 0x140117631
mov r8d, dword [0x1404fb740]
lea r9d, [r8 - 0x30f7681e]
mov r10d, ecx
xor r10d, r9d
not r9d
and r9d, edx
or r9d, r10d
not r9d
add r8d, 0xcf0897e1
cmp r9d, r8d
je 0x140117679
mov r8d, dword [0x1404fb740]
mov r9d, r8d
xor r9d, 0x30f7681d
and r9d, r8d
xor r8d, 0xcf0897e2
lea r8d, [r8 + r9*2]
lea r9d, [rax + rax]
add r9d, 0x3500
mov r10d, r9d
xor r10d, r8d
not r8d
not r9d
and r9d, r8d
or r9d, r10d
cmp r9d, 0xffffffff
jne 0x1401175f0
jmp 0x140117605
mov rbx, qword [0x14055bcd8]
mov rax, qword [rsi + 8]
cmp qword [rax + 0x18], rbx
jbe 0x14011769b
mov rcx, qword [rax + 0x10]
mov rdi, qword [rcx + rbx*8]
test rdi, rdi
jne 0x1401177d2
cmp byte [rax + 0x24], 0
je 0x140117717
call fcn.1403e6c84
mov ecx, dword [0x14055bccc]
cmp ecx, 0x17
jle 0x1401176d1
nop word cs:[rax + rax]
mov ecx, dword [0x14055bcc8]
lea edx, [rcx - 1]
imul edx, ecx
test dl, 1
jne 0x1401176c0
cmp qword [rax + 0x18], rbx
jbe 0x140117717
nop word [rax + rax]
mov rcx, qword [rax + 0x10]
mov rdi, qword [rcx + rbx*8]
mov ecx, dword [0x14055bccc]
cmp ecx, 0x53
jl 0x14011770e
nop word cs:[rax + rax]
cmp dword [0x1404fb740], 0x30f7681f
jne 0x140117700
jmp 0x1401176e0
test rdi, rdi
jne 0x1401177d2
mov eax, dword [0x14055bccc]
cmp eax, 0x23
mov rdi, qword [rbp - 0x10]
mov eax, dword [0x14055bccc]
cmp eax, 0xa
jg 0x140117720
test rdi, rdi
jne 0x1401177d2
lea rcx, [rbp - 0x10]
mov rdx, rsi
call fcn.140117a70
nop word cs:[rax + rax]
mov ecx, dword [0x14055bccc]
cmp ecx, 0x29
jl 0x14011776d
nop dword [rax + rax]
mov ecx, dword [0x14055bccc]
cmp ecx, 0x21
jge 0x140117760
jmp 0x140117750
cmp rax, 0xffffffffffffffff
je 0x140117786
mov eax, dword [0x14055bcc8]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x1401177a0
jmp 0x14011778b
call fcn.140087ab0
mov rcx, qword [rbp - 0x10]
mov eax, dword [0x14055bccc]
cmp eax, 0x25
jl 0x1401177ad
nop word [rax + rax]
mov eax, dword [0x14055bccc]
cmp eax, 0x57
jge 0x1401177a0
jmp 0x14011778b
mov qword [rbp - 0x18], rcx
call fcn.1403e6c4c
mov rcx, qword [rbp - 0x18]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x140303ece.0]
mov rdi, qword [rbp - 0x10]
mov qword [0x14055bcf0], rdi
lea rcx, [rbp - 8]
call fcn.1400a7ed0
mov rax, rdi
add rsp, 0x58
pop rbx
pop rdi
pop rsi
pop rbp
ret