Function at 0x140151160
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rsi
sub rsp, 0x88
lea rbp, [rsp + 0x80]
mov qword [rbp - 0x48], rcx
mov eax, 0x10
call fcn.140215890
sub rsp, rax
mov rax, rsp
mov qword [rbp - 0x40], rax
sub rsp, 0x20
call fcn.140150f44
add rsp, 0x20
mov qword [rbp - 0x38], rax
mov rcx, rbp
mov edx, 8
sub rsp, 0x20
call fcn.140150f60
call fcn.1400b8b4b
add rsp, 0x20
mov rcx, rax
mov rax, qword [rbp - 0x38]
mov qword [rbp - 0x30], rcx
mov cl, byte [rax]
mov dl, 0xe7
xor dl, 0xe7
xor eax, eax
cmp cl, dl
mov byte [rbp - 0x25], al
jne 0x140151910
mov rcx, qword [rbp - 0x30]
mov qword [rbp - 8], 0
xor eax, eax
cmp rcx, 0
mov byte [rbp - 0x25], al
je 0x140151910
mov eax, dword [0x14021fd08]
xor eax, 0xea3cb839
mov ecx, dword [0x14021fd0c]
mov edx, 0xdb1b796e
xor edx, 0xe164dfb3
xor ecx, edx
or eax, ecx
mov ecx, 0xc6ebdf04
xor edx, edx
div ecx
mov ecx, 0xf3461f11
xor ecx, 0xe9d94919
add eax, ecx
sub eax, 0x3c4b31b5
sub eax, 0x65fc8a88
mov ecx, 0x92fc2b5
xor ecx, 0x3564f300
add eax, ecx
cmp eax, 0xd5c9820a
jae 0x14015191f
mov rcx, qword [rbp - 0x30]
mov esi, dword [0x14021fd10]
mov edx, dword [0x14021fd14]
mov eax, 0xc81b6f1
xor eax, 0x9775d651
xor edx, eax
mov eax, esi
xor eax, 0xffffffff
and eax, edx
mov r8d, 0x736a96bd
xor r8d, 0x8c956942
xor edx, r8d
and esi, edx
sub esi, eax
mov edx, esi
xor edx, 0xffffffff
mov r9d, 0xffffffff
xor r9d, 0x1e0c23e1
mov r8d, 0xffffffff
xor r8d, 0x81618387
mov eax, edx
and eax, 0x81618387
and esi, r8d
mov r10d, r9d
and r10d, 0x81618387
mov r11d, r8d
and r11d, 0x1e0c23e1
or eax, esi
or r10d, r11d
xor eax, r10d
or edx, r9d
mov r9d, 0xee5f9456
xor r9d, 0x11a06ba9
xor edx, r9d
or r8d, 0x81618387
and edx, r8d
or eax, edx
mov r8d, 0xec1d087a
xor r8d, 0x34fbaba7
xor edx, edx
div r8d
mov edx, 0x5e6639c4
xor edx, 0x631c20ad
sub eax, edx
mov dword [rbp - 0x54], eax
mov edx, 8
lea r8, [rbp - 8]
mov rax, qword [0x14022db38]
sub rsp, 0x20
call qword [rax]
mov rcx, qword [rbp - 0x38]
add rsp, 0x20
mov edx, eax
mov eax, dword [rbp - 0x54]
mov dword [rbp - 0x50], edx
cmp byte [rcx], 0
sete cl
mov byte [rbp - 0x49], cl
cmp eax, 0x67104159
jb 0x140151246
mov cl, byte [rbp - 0x49]
xor eax, eax
test cl, 1
mov byte [rbp - 0x25], al
jne 0x140151353
jmp 0x140151910
mov eax, dword [0x14021fd18]
add eax, dword [0x14021fd1c]
imul r8d, eax, 0xf71aef74
mov eax, r8d
xor eax, 0xffffffff
and eax, 0x734ed04a
mov edx, 0x44dd381d
xor edx, 0x3793e857
mov ecx, 0xa4627b88
xor ecx, 0x5b9d8477
xor edx, ecx
and r8d, edx
mov ecx, 0xffffffff
xor ecx, 0xe3065112
and ecx, 0x734ed04a
and edx, 0xe3065112
or eax, r8d
or ecx, edx
xor eax, ecx
mov r8d, 0xd2c9d26a
xor r8d, 0x7b2afb99
mov ecx, 0x20ac091b
xor ecx, 0xdf53f6e4
xor r8d, ecx
mov edx, eax
and edx, r8d
mov ecx, eax
or ecx, r8d
xor ecx, 0xffffffff
imul ecx, edx
mov r8d, 0x5be678de
xor r8d, 0xf205512d
mov edx, eax
and edx, r8d
or eax, 0xa9e329f3
imul eax, edx
add eax, ecx
cmp eax, 0x8ef4620e
jae 0x140151928
mov ecx, dword [rbp - 0x50]
mov eax, dword [0x14021fd20]
xor eax, 0xf25c87
mov r8d, dword [0x14021fd24]
mov edx, 0x4718b235
xor edx, 0x4718b235
sub edx, r8d
add eax, edx
sub eax, 0xa2c80319
mov r8d, 0x3594712c
xor edx, edx
div r8d
mov edx, 0x966168ae
xor edx, 0x16a44531
add eax, edx
cmp ecx, 0
sete cl
mov byte [rbp - 0x55], cl
cmp eax, 0xc4fe7d8
je 0x1401513fc
mov al, byte [rbp - 0x55]
test al, 1
jne 0x1401515d5
jmp 0x140151462
mov eax, dword [0x14021fd28]
xor eax, 0x50e8a537
mov r8d, dword [0x14021fd2c]
mov ecx, eax
xor ecx, 0xffffffff
mov edx, r8d
and edx, ecx
mov r9d, r8d
xor r9d, 0xffffffff
mov ecx, eax
and ecx, r9d
imul ecx, edx
mov edx, eax
and edx, r8d
or eax, r8d
imul eax, edx
add eax, ecx
add eax, 0xade9a00e
mov ecx, 0x7c5a95aa
xor ecx, 0x7817f8c6
or eax, ecx
mov ecx, 0x3244344b
xor ecx, 0xeb798d81
mov edx, 0x2e92a25a
xor edx, 0xd16d5da5
xor ecx, edx
mov edx, 0xa6b76581
xor edx, 0xa6b76581
mov r8d, 0x57bad1f8
xor r8d, 0x57bad1f9
sub edx, r8d
sub ecx, edx
sub eax, ecx
cmp eax, 0xed21d81f
jae 0x140151931
mov eax, dword [0x14021fd30]
mov edx, dword [0x14021fd34]
mov ecx, eax
xor ecx, edx
mov r8d, 0xf945f369
xor r8d, 0x6ba0c96
xor ecx, r8d
or eax, edx
and eax, ecx
mov ecx, 0xffffffff
xor ecx, 0xf47368ed
xor edx, edx
sub edx, 1
sub ecx, edx
sub eax, ecx
mov ecx, 0xd4327eec
xor ecx, 0x6bc8b5c6
or eax, ecx
mov ecx, 0x76dfc075
xor ecx, 0x8bd21861
xor edx, edx
div ecx
mov dword [rbp - 0x5c], eax
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, [0x14022ce90]
lea r9, [0x14022ce82]
sub rsp, 0x30
mov qword [rsp + 0x20], 0x6bac5fdf
call fcn.140014c00
mov eax, dword [rbp - 0x5c]
add rsp, 0x30
cmp eax, 0xc977c569
je 0x1401514ee
xor eax, eax
mov byte [rbp - 0x25], al
jmp 0x140151910
mov rcx, qword [rbp - 0x40]
mov rax, qword [rbp - 0x48]
mov rdx, qword [rax]
mov qword [rcx], rdx
mov rax, qword [rax + 8]
mov qword [rcx + 8], rax
sub rsp, 0x20
call fcn.140151943
mov rcx, qword [rbp - 0x38]
add rsp, 0x20
mov qword [rbp - 0x68], rax
xor eax, eax
cmp byte [rcx], 0
mov byte [rbp - 0x25], al
jne 0x140151910
mov edx, dword [0x14021fd38]
xor edx, 0xf642f37c
mov ecx, dword [0x14021fd3c]
xor ecx, 0x880d21c1
mov r8d, 0x15903f89
xor r8d, 0xea6fc076
mov eax, edx
xor eax, r8d
xor edx, 0xffffffff
and eax, edx
or ecx, ecx
xor ecx, 0xffffffff
or eax, ecx
xor eax, 0xffffffff
mov ecx, 0xc0d6592e
xor edx, edx
div ecx
xor eax, 0xffffffff
mov edx, 0x1dd28651
xor edx, 0xffe7f8ce
mov ecx, 0xb6f332a9
xor ecx, 0x490ccd56
xor edx, ecx
mov ecx, 0xffffffff
xor ecx, 0x54c0c6ca
or eax, edx
or ecx, 0x54c0c6ca
xor eax, 0xffffffff
and eax, ecx
mov ecx, eax
xor ecx, 0x6ebee14b
xor ecx, 0xffffffff
or eax, 0x6ebee14b
and eax, ecx
cmp eax, 0x42a78336
jae 0x14015193a
mov eax, dword [0x14021fd40]
mov ecx, dword [0x14021fd44]
xor ecx, 0x4b885ce0
xor edx, edx
div ecx
mov rdx, qword [rbp - 0x68]
mov ecx, 0xcc0428ed
xor ecx, 0x33fbd712
mov r8d, eax
xor r8d, ecx
and r8d, 0x7cc16cea
mov r9d, 0xffffffff
xor r9d, 0x7cc16cea
mov ecx, eax
and ecx, r9d
imul ecx, r8d
mov r8d, eax
and r8d, 0x7cc16cea
or eax, 0x7cc16cea
imul eax, r8d
add eax, ecx
mov ecx, 0x379f3fe1
xor ecx, 0xfd69630
or eax, ecx
and eax, 0xdb14cfa0
mov dword [rbp - 0x74], eax
xor eax, eax
mov ecx, eax
mov r8, rbp
sub rsp, 0x20
call fcn.1400b0b4c
mov rcx, qword [rbp - 0x38]
add rsp, 0x20
mov edx, eax
mov eax, dword [rbp - 0x74]
mov dword [rbp - 0x70], edx
cmp byte [rcx], 0
sete cl
mov byte [rbp - 0x69], cl
cmp eax, 0xc5132e06
je 0x1401516a0
mov cl, byte [rbp - 0x69]
xor eax, eax
test cl, 1
mov byte [rbp - 0x25], al
jne 0x14015175c
jmp 0x140151910
mov eax, dword [rbp - 0x70]
mov ecx, 0x3ee899fb
xor ecx, 0x3ee899fb
cmp eax, ecx
jne 0x1401517f4
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, [0x14022ce90]
lea r9, [0x14022ce82]
sub rsp, 0x30
mov qword [rsp + 0x20], 0x9226301
call fcn.140014c00
add rsp, 0x30
xor eax, eax
mov byte [rbp - 0x25], al
jmp 0x140151910
lea rcx, [rbp - 0x20]
mov edx, 0x14
sub rsp, 0x20
call fcn.140150f60
add rsp, 0x20
mov eax, 0xaae26e3b
xor eax, 0xaae26e3a
mov dword [rbp - 0x1c], eax
mov eax, 0xfcaecd1
xor eax, 0xfcaecd0
mov dword [rbp - 0x20], eax
mov rax, qword [rbp]
mov qword [rbp - 0x18], rax
mov dword [rbp - 0x10], 2
mov eax, 0x7f7e6949
xor eax, 0x7f7e6949
mov dword [rbp - 0x24], eax
mov rcx, qword [rbp - 8]
lea rdx, [rbp - 0x20]
lea r8, [rbp - 0x24]
sub rsp, 0x20
call fcn.1400b0b81
mov rcx, qword [rbp - 0x38]
add rsp, 0x20
mov dword [rbp - 0x78], eax
xor eax, eax
cmp byte [rcx], 0
mov byte [rbp - 0x25], al
jne 0x140151910
mov eax, dword [rbp - 0x78]
mov ecx, 0xf50542ae
xor ecx, 0xf50542ae
cmp eax, ecx
jne 0x140151906
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, [0x14022ce90]
lea r9, [0x14022ce82]
sub rsp, 0x30
mov qword [rsp + 0x20], 0x67322734
call fcn.140014c00
add rsp, 0x30
xor eax, eax
mov byte [rbp - 0x25], al
jmp 0x140151910
cmp dword [rbp - 0x24], 0
setne al
mov byte [rbp - 0x25], al
mov al, byte [rbp - 0x25]
and al, 1
movzx eax, al
lea rsp, [rbp + 8]
pop rsi
pop rbp
ret
push r15
xchg ecx, eax
cmp ch, cl
invalid
fcom qword [rbx]
call fcn.1400fe519
dec dword [rsi - 0x163a7416]
mov ah, 0xfb
invalid
mov gs, edx
mov eax, ebp
jmp 0x1401514ee
invalid