Function at 0x140161e80
Capabilities:
Encode data using xor

Disassembly:
push rbp
sub rsp, 0x70
lea rbp, [rsp + 0x70]
mov qword [rbp - 0x20], r8
mov qword [rbp - 0x18], rdx
mov qword [rbp - 0x10], rcx
mov qword [rbp - 8], rcx
mov ecx, dword [0x14020a008]
or ecx, dword [str.d_4_]
mov edx, 0xe7b01ca
xor edx, 0xdaebeb82
mov eax, ecx
and eax, edx
xor eax, 0xffffffff
xor ecx, 0xffffffff
mov edx, 0xffffffff
xor edx, 0xd490ea48
or ecx, edx
and eax, ecx
xor eax, 0xffffffff
and eax, 0x565c8a35
sub eax, 0x27fa8be7
mov ecx, 0x2f8adf9
xor ecx, 0xf09abc43
cmp eax, ecx
jae 0x140162118
mov eax, dword [0x14020a010]
xor eax, 0xfb2a5cb8
mov edx, dword [0x14020a014]
mov ecx, eax
xor ecx, edx
not edx
and eax, edx
add eax, eax
sub eax, ecx
add eax, 0x12223b1
mov edx, eax
not edx
and edx, 0x2ffde781
mov ecx, eax
and ecx, 0xd002187e
imul ecx, edx
mov edx, eax
and edx, 0x2ffde781
or eax, 0x2ffde781
imul eax, edx
add eax, ecx
mov dword [rbp - 0x28], eax
mov eax, 0x1ed91ba3
mov dword [rbp - 0x2c], eax
mov eax, 0x10
mov qword [rbp - 0x58], rax
call fcn.1401ffc50
sub rsp, rax
mov rax, qword [rbp - 0x58]
mov rcx, rsp
mov qword [rbp - 0x40], rcx
call fcn.1401ffc50
sub rsp, rax
mov rax, rsp
mov qword [rbp - 0x48], rax
mov qword [rbp - 0x60], rax
sub rsp, 0x20
call fcn.14017583a
mov r10, qword [rbp - 0x10]
mov r9, qword [rbp - 0x20]
mov r8, qword [rbp - 0x18]
mov rdx, qword [rbp - 0x58]
mov rcx, qword [rbp - 0x48]
add rsp, 0x20
mov r11, rax
mov rax, qword [rbp - 0x40]
mov qword [rbp - 0x38], r11
mov qword [r10], 0
mov r11, r10
add r11, 8
mov qword [rbp - 0x50], r11
mov qword [r10 + 8], 0
mov dword [rax], r9d
mov qword [rax + 8], r8
sub rsp, 0x20
call fcn.140143f80
mov rdx, qword [rbp - 0x48]
mov rcx, qword [rbp - 0x40]
sub rsp, 0x20
mov rax, rsp
mov qword [rax + 0x30], rdx
mov dword [rax + 0x28], 0
mov qword [rax + 0x20], 0
xor eax, eax
mov r9d, eax
mov rdx, r9
mov r8, r9
call fcn.1400a80e1
mov rdx, qword [rbp - 0x38]
mov ecx, dword [rbp - 0x2c]
add rsp, 0x40
mov r8d, eax
mov eax, dword [rbp - 0x28]
mov dl, byte [rdx + 0x50]
test dl, dl
setne dl
test r8d, r8d
sete r8b
or dl, r8b
mov byte [rbp - 0x21], dl
cmp eax, ecx
jae 0x140161eea
mov al, byte [rbp - 0x21]
test al, 1
jne 0x14016210f
jmp 0x140162033
mov rax, qword [rbp - 0x60]
mov rcx, qword [rbp - 0x10]
movsxd rdx, dword [rax]
sub rsp, 0x20
call fcn.140016100
mov rax, qword [rbp - 0x60]
add rsp, 0x20
mov eax, dword [rax]
mov dword [rbp - 0x64], eax
mov ecx, 0x9aefe599
xor ecx, 0x9aefe599
cmp eax, ecx
je 0x14016208d
mov eax, dword [rbp - 0x64]
mov rdx, qword [rbp - 0x60]
mov rcx, qword [rbp - 0x50]
mov rcx, qword [rcx]
add rcx, 8
mov rdx, qword [rdx + 8]
movsxd r8, eax
sub rsp, 0x20
call fcn.140162130
add rsp, 0x20
mov eax, dword [0x14020a018]
and eax, dword [0x14020a01c]
imul eax, eax, 0xb96b0e0b
xor eax, 0x8ab5f69f
imul eax, eax, 0xad5da919
cmp eax, 0xb5914003
ja 0x140162121
mov eax, dword [0x14020a020]
sub eax, dword [0x14020a024]
mov ecx, 0xf83738ca
xor edx, edx
div ecx
mov ecx, eax
mov rax, qword [rbp - 0x60]
xor ecx, 0x1c033cf
add ecx, 0xc277e543
add ecx, 0xafba6ef0
sub ecx, 0xc277e543
mov dword [rbp - 0x68], ecx
mov rcx, qword [rax + 8]
sub rsp, 0x20
call fcn.1400abdc1
add rsp, 0x20
mov eax, dword [rbp - 0x68]
cmp eax, 0xf7c659a7
jae 0x140162121
jmp 0x14016210f
mov rax, qword [rbp - 8]
mov rsp, rbp
pop rbp
ret
mov ebp, 0xe98f8d3b
leave
std
invalid
add eax, 0xe9999417
mov edi, edi
invalid