Function at 0x14015ce90
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rsi
sub rsp, 0xd8
lea rbp, [rsp + 0x80]
mov eax, 0x10
call fcn.1401da3e0
sub rsp, rax
mov rax, rsp
mov qword [rbp + 8], rax
sub rsp, 0x20
call fcn.14015ddd5
add rsp, 0x20
add rax, 0x60
mov qword [rbp + 0x10], rax
mov rax, qword [0x140261d10]
cmp byte [rax], 0
jne 0x14015cfc7
mov eax, dword [0x1401e3dd8]
imul eax, dword [0x1401e3ddc]
xor eax, 0xb04f9e2d
and eax, 0xfa7b8870
mov ecx, 0xddb566f4
xor edx, edx
div ecx
cmp eax, 0xcae64185
je 0x14015d8be
mov ecx, dword [0x1401e3de0]
or ecx, dword [0x1401e3de4]
or ecx, 0x93d57e65
mov eax, ecx
and eax, 0x5215e33b
xor ecx, 0x5215e33b
or eax, ecx
mov ecx, 0xe3c3c4c8
xor ecx, 0x6b7b2d8c
and eax, ecx
mov dword [rbp + 4], eax
mov ecx, 0x40
mov edx, 8
sub rsp, 0x20
call fcn.140013610
add rsp, 0x20
mov rcx, rax
mov rax, qword [0x1401f0ae0]
mov qword [rcx], rax
lea rax, [0x1401f0138]
mov qword [rcx + 0x10], rax
mov rax, qword [0x1401f0218]
mov qword [rcx + 0x18], rax
mov rax, qword [0x1401f0220]
mov qword [rcx + 0x20], rax
mov qword [rcx + 8], 0
lea rdx, [0x1401f0138]
lea r8, [0x1401f0228]
lea r9, [0x1401f0153]
sub rsp, 0x30
mov qword [rsp + 0x20], 0xffffffffbc165838
call fcn.14001355a
mov eax, dword [rbp + 4]
add rsp, 0x30
cmp eax, 0x86ba04de
je 0x14015d8be
xor eax, eax
mov qword [rbp - 8], rax
jmp 0x14015d87a
mov rax, qword [0x1401f0238]
mov qword [rbp + 0x48], rax
mov rax, qword [0x1401f0240]
mov qword [rbp + 0x50], rax
lea rcx, [rbp + 0x48]
sub rsp, 0x20
call fcn.140039390
mov rcx, qword [rbp + 0x10]
add rsp, 0x20
mov qword [rbp - 0x10], rax
mov cl, byte [rcx]
mov dl, 0x8f
xor dl, 0x8f
cmp cl, dl
mov qword [rbp - 8], rax
jne 0x14015d87a
movabs rcx, 0xa62393a0975a9b35
movabs rax, 0xa62393a0975a9b3d
xor rcx, rax
movabs rdx, 0xc5c3cb4e9059d7cc
movabs rax, 0xc5c3cb4e9059d7c8
xor rdx, rax
sub rsp, 0x20
call fcn.140013610
add rsp, 0x20
mov rdx, rax
mov qword [rbp - 0x28], rdx
mov dword [rdx + 4], 2
lea rcx, [rbp + 0x38]
sub rsp, 0x20
call fcn.14006b980
mov rax, qword [rbp + 0x10]
add rsp, 0x20
mov rcx, qword [rbp + 0x38]
mov qword [rbp - 0x20], rcx
mov rcx, qword [rbp + 0x40]
mov qword [rbp - 0x18], rcx
cmp byte [rax], 0
jne 0x14015d342
mov rax, qword [rbp - 0x20]
movabs rcx, 0x73f47fc14776ec19
sub rax, rcx
add rax, 0xffffffff80000000
movabs rcx, 0x73f47fc14776ec19
add rax, rcx
movabs rcx, 0xffffffff00000000
cmp rax, rcx
jae 0x14015d0fb
mov rcx, qword [rbp - 0x20]
movabs rdx, 0x37128ef992bd0d5d
movabs rax, 0xc8ed710612bd0d5d
xor rdx, rax
movabs r8, 0x2880fcd11954bc45
movabs rax, 0x2880fcd166ab43ba
xor r8, rax
sub rsp, 0x20
call fcn.14000c499
add rsp, 0x20
jmp 0x14015d342
mov rax, qword [rbp - 0x20]
cmp rax, 1
jge 0x14015d24b
mov r11d, dword [0x1401e3de8]
mov eax, dword [0x1401e3dec]
mov ecx, 0xe03d240c
xor ecx, 0x55563a6b
xor eax, ecx
imul r11d, eax
mov ecx, r11d
xor ecx, 0xffffffff
mov r8d, 0xffffffff
xor r8d, 0x8b7eba4
mov edx, 0x4f9e50dc
xor edx, 0xb6b76826
mov eax, 0xdc50664a
xor eax, 0x23af99b5
xor edx, eax
mov eax, ecx
and eax, 0xf92938fa
and r11d, edx
mov r10d, 0xe6e77bcb
xor r10d, 0x1fce4331
mov r9d, r8d
and r9d, r10d
mov r10d, edx
and r10d, 0x8b7eba4
or eax, r11d
or r9d, r10d
xor eax, r9d
or ecx, r8d
xor ecx, 0xffffffff
or edx, 0xf92938fa
and ecx, edx
or eax, ecx
imul eax, eax, 0x68a820dc
add eax, 0xe7a6c082
cmp eax, 0x825a486e
je 0x14015d8c7
mov rdx, qword [rbp - 0x20]
mov eax, dword [0x1401e3df0]
xor eax, 0x1ef97e6c
mov ecx, dword [0x1401e3df4]
mov r8d, 0xa60e3bf4
xor r8d, 0x62737c7e
xor ecx, r8d
add eax, ecx
add eax, 0x38ac1528
xor eax, 0xbfa04204
and eax, 0x7344b3d8
mov dword [rbp - 0x2c], eax
movabs rax, 0x21aeb0f7de642e08
sub rdx, rax
movabs rax, 0x62146d2dd6e1b08a
movabs rcx, 0x9deb92d2291e4f75
xor rax, rcx
add rdx, rax
movabs rax, 0x21aeb0f7de642e08
add rdx, rax
movabs rcx, 0x1dff1f9f4b43b30b
movabs rax, 0x1dff1f9f4b43b30b
xor rcx, rax
sub rsp, 0x20
call fcn.1400137e9
mov eax, dword [rbp - 0x2c]
add rsp, 0x20
cmp eax, 0x179574f4
je 0x14015d1a7
jmp 0x14015d342
mov rcx, qword [rbp - 0x10]
mov r11, qword [rbp - 0x18]
mov rax, qword [rbp - 0x20]
mov esi, eax
add r11, 8
mov rax, qword [0x1401f0e50]
mov rdx, qword [rax + 8]
mov r10, rdx
add r10, 8
xor eax, eax
cmp rdx, 0
cmove r10, rax
mov rax, qword [0x1401f0e50]
mov rax, qword [rax]
mov edx, 0xfffffffd
xor r9d, r9d
xor r8d, r8d
sub rsp, 0x50
mov r8d, r9d
mov dword [rsp + 0x20], esi
mov qword [rsp + 0x28], 0
mov qword [rsp + 0x30], r11
mov qword [rsp + 0x38], r10
mov qword [rsp + 0x40], rax
mov dword [rsp + 0x48], 0
call fcn.1400961a0
mov rax, qword [rbp + 0x10]
add rsp, 0x50
cmp byte [rax], 0
jne 0x14015d342
mov rcx, qword [rbp - 0x10]
mov rax, qword [0x1401f0e50]
mov rdx, qword [rax + 8]
mov r10, rdx
add r10, 8
xor eax, eax
cmp rdx, 0
cmove r10, rax
mov rax, qword [0x1401f0e50]
mov rax, qword [rax]
mov r9d, 0xffffffff
xor edx, edx
xor edx, edx
sub rsp, 0x50
mov edx, r9d
mov r8d, r9d
mov dword [rsp + 0x20], 0xffffffff
mov qword [rsp + 0x28], 0
mov qword [rsp + 0x30], 0
mov qword [rsp + 0x38], r10
mov qword [rsp + 0x40], rax
mov dword [rsp + 0x48], 0
call fcn.1400961a0
add rsp, 0x50
mov rcx, qword [rbp - 0x28]
sub rsp, 0x20
call fcn.140086f11
mov rax, qword [rbp - 0x18]
add rsp, 0x20
cmp rax, 0
je 0x14015d4da
mov eax, dword [0x1401e3df8]
xor eax, 0xe48d4c72
mov r8d, dword [0x1401e3dfc]
mov ecx, 0xccc534b1
xor ecx, 0x333acb4e
mov r9d, r8d
xor r9d, ecx
mov edx, eax
and edx, r9d
mov ecx, eax
or ecx, r9d
mov r9d, 0x1a0533a2
xor r9d, 0xe5facc5d
xor ecx, r9d
imul ecx, edx
mov edx, eax
and edx, r8d
or eax, r8d
imul eax, edx
add eax, ecx
mov r8d, 0xffffffff
xor r8d, 0xfba970a6
mov edx, eax
and edx, r8d
mov ecx, eax
or ecx, r8d
xor ecx, 0xffffffff
imul ecx, edx
mov edx, eax
and edx, 0xfba970a6
or eax, 0xfba970a6
imul eax, edx
add eax, ecx
or eax, 0x9e5f108f
mov ecx, 0x5fe29471
xor ecx, 0x86c35a26
xor edx, edx
div ecx
mov ecx, 0x80385ddc
xor ecx, 0x7431287e
cmp eax, ecx
jae 0x14015d8d0
mov rcx, qword [rbp - 0x18]
mov eax, dword [0x1401e3e00]
xor edx, edx
div dword [0x1401e3e04]
mov r8d, 0xc00d26c7
xor edx, edx
div r8d
add eax, 0x8406b9d8
mov r8d, 0x5e83e1dc
xor r8d, 0xa17c1e23
mov edx, eax
xor edx, r8d
mov r8d, 0xaebb189b
xor r8d, 0xbffc83a5
and r8d, edx
mov r9d, 0xffffffff
xor r9d, 0x11479b3e
mov edx, eax
and edx, r9d
imul edx, r8d
mov r9d, 0x81ef2505
xor r9d, 0x90a8be3b
mov r8d, eax
and r8d, r9d
mov r9d, 0xd061993b
xor r9d, 0xc1260205
or eax, r9d
imul eax, r8d
add eax, edx
mov rcx, qword [rcx]
movabs rdx, 0xc344653b0a25f638
movabs r8, 0x8344653b0a25f638
xor rdx, r8
and rcx, rdx
cmp rcx, 0
sete cl
mov byte [rbp - 0x2d], cl
cmp eax, 0x4f58ff31
jbe 0x14015d404
mov al, byte [rbp - 0x2d]
test al, 1
jne 0x14015d4c9
jmp 0x14015d4da
mov rcx, qword [rbp - 0x18]
sub rsp, 0x20
call fcn.14000e27f
add rsp, 0x20
mov rax, qword [rbp - 0x10]
mov rcx, qword [rbp + 0x10]
cmp byte [rcx], 0
mov qword [rbp - 8], rax
jne 0x14015d87a
mov eax, dword [0x1401e3e08]
xor eax, 0xa031e231
xor edx, edx
div dword [0x1401e3e0c]
mov edx, 0xea988454
xor edx, 0xa81e782f
mov ecx, eax
xor ecx, edx
mov edx, 0xffffffff
xor edx, 0x4286fc7b
and eax, edx
shl eax, 1
sub eax, ecx
sub eax, 0x3ea30a65
and eax, 0x89604780
cmp eax, 0x57466f97
jae 0x14015d8d9
mov eax, dword [0x1401e3e10]
xor eax, 0x80e1d840
mov edx, dword [0x1401e3e14]
mov ecx, eax
xor ecx, 0xffffffff
and ecx, edx
xor edx, 0xffffffff
and eax, edx
sub eax, ecx
mov ecx, 0xffffffff
xor ecx, 0x982b971c
add eax, ecx
mov ecx, 0xbfa5be7
xor ecx, 0xbfa5be6
add eax, ecx
mov ecx, 0x5ca70fb9
xor edx, edx
div ecx
mov ecx, 0x9ced94fa
xor ecx, 0x7e9afd70
or eax, ecx
mov ecx, 0x1c37acbc
xor ecx, 0x346f9e32
mov rdx, qword [0x140261d10]
mov r8, rdx
add r8, 8
mov qword [rbp - 0x38], r8
cmp qword [rdx + 8], 0
sete dl
mov byte [rbp - 0x2e], dl
cmp eax, ecx
je 0x14015d8d9
mov al, byte [rbp - 0x2e]
test al, 1
jne 0x14015d677
jmp 0x14015d5c7
mov rcx, qword [rbp - 0x38]
sub rsp, 0x20
call fcn.14015dde3
add rsp, 0x20
mov rax, qword [0x140261d10]
mov qword [rbp - 0x48], rax
mov rax, qword [rax + 8]
mov qword [rbp - 0x40], rax
cmp rax, 1
jge 0x14015d635
mov rdx, qword [rbp - 0x40]
movabs rax, 0x5c50d89b4af75f0f
sub rdx, rax
add rdx, 0xffffffffffffffff
movabs rax, 0x5c50d89b4af75f0f
add rdx, rax
xor eax, eax
mov ecx, eax
sub rsp, 0x20
call fcn.1400137e9
mov rax, qword [rbp - 0x10]
add rsp, 0x20
mov qword [rbp - 8], rax
jmp 0x14015d87a
mov rdx, qword [rbp - 0x40]
mov rax, qword [rbp - 0x48]
mov rcx, qword [rax + 0x10]
add rcx, 8
movabs r8, 0x4e99c14c6b592974
sub rsp, 0x20
call fcn.140094a60
mov rcx, qword [rbp + 0x10]
mov rax, qword [rbp - 0x10]
add rsp, 0x20
mov cl, byte [rcx]
mov dl, 0xdb
xor dl, 0xdb
cmp cl, dl
mov qword [rbp - 8], rax
jne 0x14015d87a
mov rdx, qword [rbp + 8]
mov rax, qword [rbp - 0x10]
mov rcx, qword [rax + 0x58]
mov qword [rdx], rcx
mov rax, qword [rax + 0x60]
mov qword [rdx + 8], rax
lea rcx, [rbp + 0x28]
sub rsp, 0x20
call fcn.14001e153
add rsp, 0x20
mov rcx, qword [rbp + 0x28]
mov rax, qword [rbp + 0x30]
mov qword [rbp + 0x18], rcx
mov qword [rbp + 0x20], rax
lea rcx, [rbp + 0x18]
sub rsp, 0x20
call fcn.14012f910
add rsp, 0x20
mov rcx, rax
mov rax, qword [rbp + 0x10]
mov dl, byte [rax]
mov byte [rbp - 0x4b], dl
mov byte [rax], 0
sub rsp, 0x20
call fcn.1400fa1a6
mov rcx, qword [rbp + 0x10]
mov al, byte [rbp - 0x4b]
add rsp, 0x20
mov cl, byte [rcx]
mov dl, 0xc4
xor dl, 0xc5
mov byte [rbp - 0x4a], dl
cmp cl, 0
mov byte [rbp - 0x49], al
je 0x14015d6ff
mov al, byte [rbp - 0x4a]
mov byte [rbp - 0x49], al
mov rax, qword [rbp + 0x10]
mov cl, byte [rbp - 0x49]
mov byte [rbp - 0x59], cl
mov cl, 0xf1
xor cl, 0xf1
mov byte [rax], cl
mov rax, qword [0x140261d10]
mov rcx, rax
add rcx, 8
mov qword [rbp - 0x58], rcx
mov rax, qword [rax + 8]
movabs rcx, 0x333955e1829954c5
movabs rdx, 0x333955e1829954c5
xor rcx, rdx
cmp rax, rcx
je 0x14015d869
mov rcx, qword [rbp - 0x58]
sub rsp, 0x20
call fcn.14015dde3
add rsp, 0x20
mov rax, qword [0x140261d10]
mov qword [rbp - 0x70], rax
mov rax, qword [rax + 8]
mov qword [rbp - 0x68], rax
cmp rax, 1
jge 0x14015d82d
mov eax, dword [0x1401e3e18]
xor eax, dword [0x1401e3e1c]
xor eax, 0x3664e123
imul ecx, eax, 0x74330ade
mov edx, 0xf3c5743c
xor edx, 0xcb5b6157
mov eax, ecx
or eax, edx
xor eax, 0xffffffff
or ecx, 0x389e156b
xor ecx, 0xffffffff
or eax, ecx
xor eax, 0xffffffff
cmp eax, 0x21aef2c
jb 0x14015d8e2
mov rcx, qword [rbp - 0x68]
mov eax, dword [0x1401e3e20]
xor eax, 0xa48459e
and eax, dword [0x1401e3e24]
imul eax, eax, 0x580ad709
xor eax, 0x77e7c422
imul eax, eax, 0xa0032cca
mov dword [rbp - 0x74], eax
mov eax, 0x40bf6a9e
xor eax, 0x5afa5b4f
mov dword [rbp - 0x78], eax
xor eax, eax
sub rax, rcx
xor ecx, ecx
sub rcx, 0xffffffffffffffff
add rax, rcx
xor ecx, ecx
mov edx, ecx
sub rdx, rax
xor eax, eax
mov ecx, eax
sub rsp, 0x20
call fcn.1400137e9
mov ecx, dword [rbp - 0x78]
mov eax, dword [rbp - 0x74]
add rsp, 0x20
cmp eax, ecx
je 0x14015d8e2
mov rax, qword [rbp - 0x10]
mov qword [rbp - 8], rax
jmp 0x14015d87a
mov rdx, qword [rbp - 0x68]
mov rax, qword [rbp - 0x70]
mov rcx, qword [rax + 0x10]
add rcx, 8
movabs r8, 0x4e9909fffb527974
sub rsp, 0x20
call fcn.140094a60
mov rcx, qword [rbp + 0x10]
mov rax, qword [rbp - 0x10]
add rsp, 0x20
cmp byte [rcx], 0
mov qword [rbp - 8], rax
jne 0x14015d87a
mov rax, qword [rbp - 0x10]
mov rcx, qword [rbp + 0x10]
mov dl, byte [rbp - 0x59]
mov byte [rcx], dl
mov qword [rbp - 8], rax
mov rax, qword [rbp + 0x10]
mov rcx, qword [rbp - 8]
mov dl, byte [rax]
mov byte [rbp - 0x79], dl
mov dl, 0x33
xor dl, 0x33
mov byte [rax], dl
sub rsp, 0x20
call fcn.1400376cc
mov rax, qword [rbp + 0x10]
add rsp, 0x20
mov al, byte [rax]
mov cl, 0x70
xor cl, 0x70
cmp al, cl
jne 0x14015d8b7
mov rax, qword [rbp + 0x10]
mov cl, byte [rbp - 0x79]
mov byte [rax], cl
lea rsp, [rbp + 0x58]
pop rsi
pop rbp
ret
leave
or dword [rdx - 0x9c11614], ecx
invalid
fld dword [rsi - 0x28165a51]
clc
invalid
sbb eax, 0xe9698240
sub edi, ebx
invalid
jg 0x14015d927
mov dh, dl
jmp 0x14015d538
xchg dword [rbp - 0x134160f], esi
invalid
lodsd eax, dword [rsi]
ja 0x14015d95b
shl byte [rcx], 1
sar dword [rax + 0x3f5a79bc], 0x35
xchg byte [r13 - 0x453ece40], spl
invalid