Function at 0x1401541b0
Capabilities:
Encode data using xor

Disassembly:
push rsi
sub rsp, 0x60
mov qword [rsp + 0x40], rcx
call fcn.140153510
mov rcx, qword [rsp + 0x40]
mov qword [rsp + 0x48], rax
add rcx, 8
mov qword [rsp + 0x50], rcx
xor eax, eax
mov qword [rsp + 0x58], rax
mov rdx, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x40]
mov rax, qword [rsp + 0x58]
mov qword [rsp + 0x30], rax
mov rcx, qword [rcx]
mov rdx, qword [rdx]
mov qword [rsp + 0x38], rdx
cmp rax, rcx
jge 0x140154324
mov eax, dword [0x1401d0a60]
mov ecx, dword [0x1401d0a64]
mov edx, 0xbd5391ab
xor edx, 0xe6decbcd
xor ecx, edx
xor eax, ecx
imul eax, eax, 0xc3480ec
add eax, 0xecf6f0f5
xor eax, 0xfeeba330
cmp eax, 0x4fd7a49c
jb 0x14015451d
mov rax, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x30]
mov edx, dword [0x1401d0a68]
xor edx, dword [0x1401d0a6c]
mov r8d, 0x729df382
xor r8d, 0x729df382
mov r9d, 0x888adc50
xor r9d, 0x97f0018
sub r8d, r9d
sub edx, r8d
add edx, 0x8ac82fda
mov r9d, 0xffffffff
xor r9d, 0xf0f9d983
mov r8d, edx
and r8d, r9d
mov r9d, edx
xor r9d, 0xf0f9d983
add edx, r9d
sub edx, r8d
mov dword [rsp + 0x28], edx
mov rcx, qword [rax + rcx*8 + 8]
call fcn.14015352b
mov cl, al
mov eax, dword [rsp + 0x28]
mov byte [rsp + 0x2f], cl
cmp eax, 0xf49beac8
je 0x140154237
mov al, byte [rsp + 0x2f]
test al, 1
jne 0x1401542ca
jmp 0x140154311
mov rcx, qword [rsp + 0x30]
mov rax, qword [rsp + 0x50]
mov rax, qword [rax]
mov rcx, qword [rax + rcx*8 + 8]
call fcn.1401540d1
mov rax, qword [rsp + 0x48]
mov al, byte [rax]
mov cl, 0x8c
xor cl, 0x8c
cmp al, cl
jne 0x140154517
mov rcx, qword [rsp + 0x30]
mov rax, qword [rsp + 0x50]
mov rax, qword [rax]
mov rcx, qword [rax + rcx*8 + 8]
mov edx, 8
call fcn.14000e6f9
mov rax, qword [rsp + 0x30]
add rax, 1
mov qword [rsp + 0x58], rax
jmp 0x1401541d9
mov eax, dword [0x1401d0a70]
xor eax, 0x94c9f6f5
mov ecx, dword [0x1401d0a74]
xor ecx, 0x41edb429
imul eax, ecx
imul eax, eax, 0xc640700f
or eax, 0xd8e80418
mov ecx, 0xbf276802
xor edx, edx
div ecx
cmp eax, 0xfa04efd2
ja 0x140154526
mov rcx, qword [rsp + 0x38]
mov esi, dword [0x1401d0a78]
xor esi, 0x82c14fc6
and esi, dword [0x1401d0a7c]
mov eax, 0xa8913d9f
xor eax, 0x576ec260
mov edx, esi
xor edx, eax
mov r8d, 0xffffffff
xor r8d, 0x695d0954
mov r9d, 0x6d240db
xor r9d, 0xf84b66ee
mov eax, 0xb54441e
xor eax, 0xf4abbbe1
xor r9d, eax
mov r10d, 0xbcccccba
xor r10d, 0x4255ea8f
mov eax, edx
and eax, r10d
and esi, r9d
mov r10d, r8d
and r10d, 0xfe992635
mov r11d, r9d
and r11d, 0x695d0954
or eax, esi
or r10d, r11d
xor eax, r10d
or edx, r8d
xor edx, 0xffffffff
mov r8d, 0xa08cd59c
xor r8d, 0x5e15f3a9
or r8d, r9d
and edx, r8d
or eax, edx
mov edx, 0x88b329dc
xor edx, 0xaa7f1add
and eax, edx
or eax, 0xc90c5e04
cmp rcx, 0
sete cl
mov byte [rsp + 0x27], cl
cmp eax, 0xf4013878
ja 0x14015435d
mov al, byte [rsp + 0x27]
test al, 1
jne 0x140154517
jmp 0x14015442e
mov ecx, dword [0x1401d0a80]
mov edx, dword [0x1401d0a84]
mov eax, ecx
xor eax, 0xffffffff
xor ecx, 0xffffffff
and eax, ecx
mov ecx, edx
xor ecx, 0xffffffff
mov r8d, 0x8fd50153
xor r8d, 0x702afeac
xor edx, r8d
and ecx, edx
or eax, ecx
mov ecx, 0x812f00d8
xor ecx, 0x7ed0ff27
xor eax, ecx
add eax, 0xdf883a54
xor eax, 0xdf55e68c
mov ecx, 0x1538b12d
xor ecx, 0xbc6cacd1
sub eax, ecx
sub eax, 0xc75bbb5b
mov ecx, 0x76cd3468
xor ecx, 0xdf992994
add eax, ecx
mov ecx, 0x3996e6a0
xor ecx, 0x5f0e9e5c
cmp eax, ecx
jae 0x14015452f
mov rcx, qword [rsp + 0x38]
mov eax, dword [0x1401d0a88]
mov edx, dword [0x1401d0a8c]
mov r8d, 0x8602dc10
xor r8d, 0x699aed31
add eax, r8d
sub eax, edx
sub eax, 0xef983121
or eax, 0x744c92ae
xor eax, 0xd9fc0fef
mov r8d, 0xbee31c52
xor edx, edx
div r8d
mov dword [rsp + 0x20], eax
movabs rdx, 0x107f8d7db7372fa6
movabs rax, 0x107f8d7db7372fae
xor rdx, rax
call fcn.14000e580
mov eax, dword [rsp + 0x20]
cmp eax, 0xae39c2c
jae 0x1401544a6
jmp 0x140154517
add rsp, 0x60
pop rsi
ret
xlatb
fchs
jmp 0x140154237
mov ch, 0x8a
invalid
cwde
outsb dx, byte [rsi]
clc
mov eax, 0xffff6ee9
dec dword [rdi]
invalid