Function at 0x140152470
Capabilities:
Encode data using xor

Disassembly:
push rbp
sub rsp, 0x60
lea rbp, [rsp + 0x60]
mov dword [rbp - 4], ecx
mov ecx, dword [0x14021fd88]
mov eax, dword [0x14021fd8c]
xor eax, 0xd43e21f
or ecx, eax
sub ecx, 0xfb0e1f64
xor ecx, 0xb77663e0
mov eax, 0x4b61cecd
xor eax, 0xb49e3132
mov edx, ecx
xor edx, eax
mov eax, 0xd145c297
xor eax, 0x5141a3e8
and eax, edx
mov edx, 0x26598b34
xor edx, 0xa65dea4b
mov r8d, 0x3d6d181b
xor r8d, 0xc292e7e4
xor edx, r8d
and ecx, edx
or eax, ecx
cmp eax, 0xf4727265
je 0x140152971
mov ecx, dword [0x14021fd90]
xor ecx, 0x70845de8
mov eax, dword [0x14021fd94]
xor eax, ecx
not eax
and eax, ecx
xor eax, 0x2eb7d48
imul eax, eax, 0xb3494940
and eax, 0x2564c040
mov dword [rbp - 0x10], eax
mov eax, 0x10
mov qword [rbp - 0x48], rax
call fcn.140215890
sub rsp, rax
mov rax, rsp
mov qword [rbp - 0x20], rax
mov eax, 0x30
call fcn.140215890
sub rsp, rax
mov rax, qword [rbp - 0x48]
mov rcx, rsp
mov qword [rbp - 0x28], rcx
call fcn.140215890
sub rsp, rax
mov rax, qword [rbp - 0x48]
mov rcx, rsp
mov qword [rbp - 0x30], rcx
call fcn.140215890
sub rsp, rax
mov rax, qword [rbp - 0x48]
mov rcx, rsp
mov qword [rbp - 0x40], rcx
call fcn.140215890
sub rsp, rax
mov rax, rsp
mov qword [rbp - 0x38], rax
sub rsp, 0x20
call fcn.140150f44
mov edx, dword [rbp - 4]
mov rcx, qword [rbp - 0x28]
add rsp, 0x20
mov r8, rax
mov rax, qword [rbp - 0x20]
mov qword [rbp - 0x18], r8
movsxd rdx, edx
mov qword [rax], rdx
mov qword [rax + 8], 0
mov edx, 0x30
sub rsp, 0x20
call fcn.140150f60
mov rcx, qword [rbp - 0x30]
mov r8, qword [rbp - 0x28]
mov r9, qword [rbp - 0x20]
add rsp, 0x20
mov eax, 0x59cfec01
xor eax, 0x59cfec31
mov dword [r8], eax
mov qword [r8 + 8], 0
mov qword [r8 + 0x10], 0
mov dword [r8 + 0x18], 0
mov qword [r8 + 0x20], 0
mov qword [r8 + 0x28], 0
mov qword [rcx], 0
mov edx, 0x400
mov rax, qword [0x14022db40]
sub rsp, 0x20
call qword [rax]
mov rcx, qword [rbp - 0x18]
add rsp, 0x20
mov edx, eax
mov eax, dword [rbp - 0x10]
mov dword [rbp - 0xc], edx
cmp byte [rcx], 0
sete cl
mov byte [rbp - 5], cl
cmp eax, 0xb08d616e
je 0x1401524e0
mov al, byte [rbp - 5]
test al, 1
jne 0x14015263d
jmp 0x14015296c
mov rcx, qword [rbp - 0x30]
mov eax, dword [rbp - 0xc]
test eax, eax
setne al
mov rcx, qword [rcx]
mov qword [rbp - 0x50], rcx
test rcx, rcx
sete cl
or al, cl
test al, 1
jne 0x140152665
jmp 0x1401526e2
mov ecx, 0x40
mov edx, 8
sub rsp, 0x20
call fcn.140015160
add rsp, 0x20
mov rcx, rax
mov rax, qword [str.pf__]
mov qword [rcx], rax
lea rax, [0x14022ce68]
mov qword [rcx + 0x10], rax
mov rax, qword [0x14022cf18]
mov qword [rcx + 0x18], rax
mov rax, qword [0x14022cf20]
mov qword [rcx + 0x20], rax
mov qword [rcx + 8], 0
lea rdx, [0x14022ce68]
lea r8, [0x14022ceb3]
lea r9, [0x14022ce82]
sub rsp, 0x30
mov qword [rsp + 0x20], 0xffffffffa6d5050e
call fcn.140014c00
add rsp, 0x30
jmp 0x14015296c
mov r8, qword [rbp - 0x40]
mov rcx, qword [rbp - 0x50]
mov qword [r8], 0
mov edx, 6
mov rax, qword [0x14022db38]
sub rsp, 0x20
call qword [rax]
add rsp, 0x20
mov ecx, eax
mov rax, qword [rbp - 0x18]
mov dword [rbp - 0x54], ecx
cmp byte [rax], 0
jne 0x14015296c
mov eax, dword [rbp - 0x54]
cmp eax, 0
je 0x1401527b5
mov ecx, 0x40
mov edx, 8
sub rsp, 0x20
call fcn.140015160
add rsp, 0x20
mov rcx, rax
mov rax, qword [str.pf__]
mov qword [rcx], rax
lea rax, [0x14022ce68]
mov qword [rcx + 0x10], rax
mov rax, qword [0x14022cf18]
mov qword [rcx + 0x18], rax
mov rax, qword [0x14022cf20]
mov qword [rcx + 0x20], rax
mov qword [rcx + 8], 0
movabs rax, 0xf5e5e2176b7a2f59
movabs rdx, 0xa1a1de8fb80bde8
xor rax, rdx
lea rdx, [0x14022ce68]
lea r8, [0x14022ceb3]
lea r9, [0x14022ce82]
sub rsp, 0x30
mov qword [rsp + 0x20], rax
call fcn.140014c00
add rsp, 0x30
jmp 0x14015296c
mov r8, qword [rbp - 0x38]
mov rax, qword [rbp - 0x40]
movabs rcx, 0xaeb8031dd4315b5b
movabs rdx, 0xaeb8031dd4315b5b
xor rcx, rdx
mov qword [r8], rcx
mov rcx, qword [rax]
mov edx, 2
sub rsp, 0x20
call fcn.1400b0d20
add rsp, 0x20
mov ecx, eax
mov rax, qword [rbp - 0x18]
mov dword [rbp - 0x58], ecx
mov al, byte [rax]
mov cl, 0x21
xor cl, 0x21
cmp al, cl
jne 0x14015296c
mov eax, dword [rbp - 0x58]
mov ecx, 0x1cdcb6ae
xor ecx, 0x1cdcb6ae
cmp eax, ecx
jne 0x1401528bb
movabs rcx, 0x154d5c7d10049745
movabs rax, 0x154d5c7d10049705
xor rcx, rax
movabs rdx, 0xb2f73ba98e4a0fb8
movabs rax, 0xb2f73ba98e4a0fb0
xor rdx, rax
sub rsp, 0x20
call fcn.140015160
add rsp, 0x20
mov rcx, rax
mov rax, qword [str.pf__]
mov qword [rcx], rax
lea rax, [0x14022ce68]
mov qword [rcx + 0x10], rax
mov rax, qword [0x14022cf18]
mov qword [rcx + 0x18], rax
mov rax, qword [0x14022cf20]
mov qword [rcx + 0x20], rax
mov qword [rcx + 8], 0
lea rdx, [0x14022ce68]
lea r8, [0x14022ceb3]
lea r9, [0x14022ce82]
sub rsp, 0x30
mov qword [rsp + 0x20], 0xffffffffbe94a3a7
call fcn.140014c00
add rsp, 0x30
jmp 0x14015296c
mov rax, qword [rbp - 0x38]
mov rdx, qword [rax]
sub rsp, 0x20
xor eax, eax
mov ecx, eax
call fcn.1400b0d53
add rsp, 0x20
mov ecx, eax
mov rax, qword [rbp - 0x18]
mov al, byte [rax]
test al, al
sete al
test ecx, ecx
sete cl
and al, cl
test al, 1
jne 0x1401528f4
jmp 0x14015296c
mov ecx, 0x40
mov edx, 8
sub rsp, 0x20
call fcn.140015160
add rsp, 0x20
mov rcx, rax
mov rax, qword [str.pf__]
mov qword [rcx], rax
lea rax, [0x14022ce68]
mov qword [rcx + 0x10], rax
mov rax, qword [0x14022cf18]
mov qword [rcx + 0x18], rax
mov rax, qword [0x14022cf20]
mov qword [rcx + 0x20], rax
mov qword [rcx + 8], 0
lea rdx, [0x14022ce68]
lea r8, [0x14022ceb3]
lea r9, [0x14022ce82]
sub rsp, 0x30
mov qword [rsp + 0x20], 0xffffffffbbc6ce8c
call fcn.140014c00
add rsp, 0x30
mov rsp, rbp
pop rbp
ret
sub ecx, esp
test dword [rdi - 0x17], 0xfffffb66
nop word [rax + rax]