Function at 0x14005c770
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rsi
push rdi
push rbx
sub rsp, 0x178
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x80], r8
mov qword [rbp + 0x88], rdx
mov qword [rbp + 0xc0], rcx
mov eax, 0x10
mov qword [rbp + 0xa8], rax
call fcn.1401f2390
sub rsp, rax
mov rax, rsp
mov qword [rbp + 0x90], rax
mov eax, 0x20
call fcn.1401f2390
sub rsp, rax
mov rax, qword [rbp + 0xa8]
mov rcx, rsp
mov qword [rbp + 0x98], rcx
call fcn.1401f2390
sub rsp, rax
mov rax, qword [rbp + 0xa8]
mov rcx, rsp
mov qword [rbp + 0xa0], rcx
call fcn.1401f2390
sub rsp, rax
mov rax, qword [rbp + 0xa8]
mov rcx, rsp
mov qword [rbp + 0xb0], rcx
call fcn.1401f2390
sub rsp, rax
mov rax, rsp
mov qword [rbp + 0xb8], rax
sub rsp, 0x20
call fcn.140045cde
mov rcx, qword [rbp + 0xc0]
add rsp, 0x20
mov qword [rbp + 0xc8], rax
mov rax, qword [rcx]
movabs rcx, 0x7e4d9399a6031913
movabs rdx, 0x7e4d9399a6031913
xor rcx, rdx
cmp rax, rcx
jne 0x14005c988
mov ecx, 0x20
sub rsp, 0x20
call fcn.140045e80
add rsp, 0x20
mov rcx, rax
mov rax, qword [rbp + 0xc8]
mov qword [rbp + 0x78], rcx
cmp byte [rax], 0
jne 0x14005d193
mov edx, dword [0x1401f5aa0]
mov ecx, dword [0x1401f5aa4]
mov eax, edx
xor eax, 0xffffffff
xor edx, 0xffffffff
or eax, edx
and ecx, ecx
xor ecx, 0xffffffff
and eax, ecx
mov ecx, 0x845d1c7d
xor ecx, 0x7ba2e382
xor eax, ecx
and eax, 0x43f3ff7e
mov ecx, 0x81cbbce2
xor ecx, 0x81cbbce2
mov edx, 0xe39bb05
xor edx, 0x4a562a0c
sub ecx, edx
sub eax, ecx
mov ecx, 0x5a5ee278
xor ecx, 0x396a9b1b
xor edx, edx
div ecx
cmp eax, 0x7bf98652
ja 0x14005d19f
mov rcx, qword [rbp + 0x78]
mov rdx, qword [rbp + 0xc0]
mov eax, dword [0x1401f5aa8]
add eax, dword [0x1401f5aac]
imul eax, eax, 0x968a7330
xor eax, 0xf3efaab8
sub eax, 0x5ad16e23
mov qword [rdx + 0x10], 0
movabs rdx, 0x4340b8b85cd1b49f
movabs r8, 0x4340b8b85cd1b49f
xor rdx, r8
cmp rcx, rdx
setl cl
mov byte [rbp + 0x77], cl
cmp eax, 0x2e1267f
je 0x14005c8e2
mov al, byte [rbp + 0x77]
test al, 1
jne 0x14005c94c
jmp 0x14005c970
mov rcx, qword [rbp + 0x78]
xor eax, eax
mov edx, eax
movabs r8, 0x7fffffffffffffff
sub rsp, 0x20
call fcn.14000e57e
add rsp, 0x20
jmp 0x14005d193
mov rdx, qword [rbp + 0x78]
mov rcx, qword [rbp + 0xc0]
sub rsp, 0x20
call fcn.140018556
add rsp, 0x20
mov rdx, qword [rbp + 0xa0]
mov rcx, qword [rbp + 0x98]
mov rax, qword [rbp + 0x88]
mov r8, qword [rbp + 0xc0]
mov qword [rbp + 0xd0], 0
mov r9, qword [r8]
mov qword [rcx], r9
mov r9, qword [r8 + 8]
mov qword [rcx + 8], r9
mov r8, qword [r8 + 0x10]
mov qword [rcx + 0x10], r8
mov r8, qword [rax]
mov qword [rdx], r8
mov rax, qword [rax + 8]
mov qword [rdx + 8], rax
lea r8, [rbp + 0xd0]
sub rsp, 0x20
call fcn.14005b5d0
add rsp, 0x20
mov rcx, rax
mov rax, qword [rbp + 0xc8]
mov qword [rbp + 0x68], rcx
mov al, byte [rax]
mov cl, 0xe4
xor cl, 0xe4
cmp al, cl
jne 0x14005d193
mov rax, qword [rbp + 0x68]
mov rcx, qword [rbp + 0xc0]
mov rcx, qword [rcx]
mov qword [rbp + 0x60], rcx
cmp rax, 0xffffffffffffffff
jle 0x14005ca92
mov rax, qword [rbp + 0x68]
mov rcx, qword [rbp + 0x60]
cmp rax, rcx
jl 0x14005ca65
mov rcx, qword [rbp + 0x68]
mov rdx, qword [rbp + 0x60]
movabs rax, 0xb6914e14539a8add
movabs r8, 0x496eb1ebac657522
xor rax, r8
add rdx, rax
sub rsp, 0x20
call fcn.140013c92
add rsp, 0x20
jmp 0x14005d193
mov rcx, qword [rbp + 0x80]
mov rdx, qword [rbp + 0x68]
mov rax, qword [rbp + 0xc0]
mov rax, qword [rax + 8]
add rax, 8
shl rdx, 5
add rax, rdx
add rax, 0x18
mov qword [rax], rcx
jmp 0x14005d193
mov rax, qword [rbp + 0x60]
cmp rax, 0
mov qword [rbp + 0x58], rax
jne 0x14005cb3a
mov ecx, 0x20
sub rsp, 0x20
call fcn.140045e80
add rsp, 0x20
mov rcx, rax
mov rax, qword [rbp + 0xc8]
mov qword [rbp + 0x50], rcx
mov al, byte [rax]
mov cl, 0xe5
xor cl, 0xe5
cmp al, cl
jne 0x14005d193
mov rax, qword [rbp + 0x50]
mov rcx, qword [rbp + 0xc0]
mov qword [rcx + 0x10], 0
cmp rax, 0
jge 0x14005cb14
mov rcx, qword [rbp + 0x50]
xor eax, eax
mov edx, eax
movabs r8, 0x7fffffffffffffff
sub rsp, 0x20
call fcn.14000e57e
add rsp, 0x20
jmp 0x14005d193
mov rcx, qword [rbp + 0xc0]
mov rdx, qword [rbp + 0x50]
sub rsp, 0x20
call fcn.140018556
mov rax, qword [rbp + 0xc0]
add rsp, 0x20
mov rax, qword [rax]
mov qword [rbp + 0x58], rax
mov rax, qword [rbp + 0xc0]
mov rcx, qword [rbp + 0x58]
mov qword [rbp + 0x30], rcx
mov rdx, rax
add rdx, 8
mov qword [rbp + 0x38], rdx
mov rdx, rax
add rdx, 0x10
mov qword [rbp + 0x40], rdx
mov rax, qword [rax + 0x10]
mov qword [rbp + 0x48], rax
mov edx, 2
lea r8, [rbp + 0xe0]
sub rsp, 0x20
call fcn.140046f0e
add rsp, 0x20
test al, 1
jne 0x14005cc77
mov rcx, qword [rbp + 0x48]
mov edx, 3
lea r8, [rbp + 0xd8]
sub rsp, 0x20
call fcn.140046f0e
add rsp, 0x20
test al, 1
jne 0x14005cc77
mov rcx, qword [rbp + 0xe0]
xor eax, eax
cmp rcx, qword [rbp + 0xd8]
mov byte [rbp + 0x2f], al
jl 0x14005cc9f
mov rdx, qword [rbp + 0x48]
mov r9, qword [rbp + 0x30]
mov rcx, r9
sub rcx, rdx
mov qword [rbp + 0x20], rcx
movabs rax, 0xb8818a20c1c021d7
movabs r8, 0x477e75df3e3fde28
xor rax, r8
mov r8, rcx
xor r8, rax
movabs rax, 0xe2f572ae54948005
movabs r10, 0x42aabb0d1acc8b88
xor rax, r10
and rax, r8
mov r11, 0xffffffffffffffff
movabs r8, 0xa05fc9a34e580b8d
xor r11, r8
mov r10, rcx
and r10, r11
mov r8, r9
xor r8, 0xffffffffffffffff
movabs rsi, 0xa05fc9a34e580b8d
and r8, rsi
and r9, r11
or rax, r10
or r8, r9
xor rax, r8
cmp rax, 0
setl al
xor rcx, rdx
cmp rcx, 0xffffffffffffffff
setg cl
and al, cl
test al, 1
jne 0x14005cc77
mov rax, qword [rbp + 0x20]
cmp rax, 3
setg al
mov byte [rbp + 0x2f], al
jmp 0x14005cc9f
sub rsp, 0x20
call fcn.140009cc0
mov rax, qword [rbp + 0xc8]
add rsp, 0x20
mov al, byte [rax]
mov cl, 0x61
xor cl, 0x61
cmp al, cl
je 0x14005cf9d
jmp 0x14005d193
mov rax, qword [rbp + 0xc8]
mov cl, byte [rbp + 0x2f]
mov al, byte [rax]
test al, al
setne al
mov byte [rbp + 0x1f], al
or al, cl
test al, 1
jne 0x14005cf8d
mov rcx, qword [rbp + 0xc0]
sub rsp, 0x20
call fcn.14005bd90
mov rax, qword [rbp + 0xc8]
add rsp, 0x20
mov al, byte [rax]
mov cl, 0x79
xor cl, 0x79
cmp al, cl
jne 0x14005d193
mov rax, qword [rbp + 0xb0]
mov rcx, qword [rbp + 0x88]
mov rdx, qword [rbp + 0x38]
mov r8, qword [rbp + 0xc0]
mov r9, qword [rbp + 0xd0]
mov qword [rbp - 0x10], r9
mov r8, qword [r8]
mov qword [rbp], r8
mov rdx, qword [rdx]
mov qword [rbp - 8], rdx
mov rdx, qword [rcx]
mov qword [rax], rdx
mov rcx, qword [rcx + 8]
mov qword [rax + 8], rcx
sub rsp, 0x20
call fcn.140045cde
mov rcx, qword [rbp]
add rsp, 0x20
mov qword [rbp + 8], rax
mov rax, 0xffffffffffffffff
cmp rcx, 0
mov qword [rbp + 0x10], rax
je 0x14005cf68
mov rcx, qword [rbp - 0x10]
mov rax, qword [rbp]
add rax, 0xffffffffffffffff
mov qword [rbp - 0x20], rax
and rax, rcx
mov qword [rbp - 0x18], rax
mov rdx, qword [rbp]
mov rcx, qword [rbp - 0x18]
mov qword [rbp - 0x28], rcx
test rcx, rcx
setns al
sub rcx, rdx
setl cl
and al, cl
test al, 1
jne 0x14005cdaa
mov rdx, qword [rbp - 0x20]
mov rcx, qword [rbp - 0x28]
sub rsp, 0x20
call fcn.140013c92
add rsp, 0x20
xor eax, eax
mov qword [rbp + 0x10], rax
jmp 0x14005cf68
mov rcx, qword [rbp - 0x28]
mov rdx, qword [rbp + 8]
mov rax, qword [rbp - 8]
mov r8, rcx
shl r8, 5
mov rax, qword [rax + r8 + 8]
mov qword [rbp - 0x40], rax
test rax, rax
sete al
mov r9b, byte [rdx]
xor edx, edx
mov r10b, dl
test r9b, r9b
setne dl
or dl, al
mov r8d, 0x68e2a5d8
xor r8d, 0x68e2a5db
mov eax, 0xc672e1d8
xor eax, 0xc672e1de
cmp r9b, r10b
cmovne eax, r8d
test dl, 1
mov qword [rbp - 0x38], rcx
mov dword [rbp - 0x2c], eax
jne 0x14005cebf
mov rax, qword [rbp - 0x40]
mov rcx, qword [rbp - 0x10]
cmp rax, rcx
jne 0x14005ce8a
mov r8, qword [rbp - 0x28]
mov rcx, qword [rbp + 0x90]
mov rax, qword [rbp + 0xb0]
mov rdx, qword [rbp - 8]
add rdx, 8
shl r8, 5
add rdx, r8
add rdx, 8
mov r8, qword [rdx]
mov qword [rcx], r8
mov rdx, qword [rdx + 8]
mov qword [rcx + 8], rdx
mov rdx, qword [rax]
mov qword [rbp + 0xe8], rdx
mov rax, qword [rax + 8]
mov qword [rbp + 0xf0], rax
lea rdx, [rbp + 0xe8]
sub rsp, 0x20
call fcn.14005d6e0
add rsp, 0x20
mov cl, al
mov rax, qword [rbp - 0x28]
test cl, 1
mov qword [rbp + 0x10], rax
jne 0x14005cf68
mov rdx, qword [rbp - 0x20]
mov rcx, qword [rbp - 0x28]
sub rsp, 0x20
call fcn.140046fed
mov r8, qword [rbp + 8]
add rsp, 0x20
mov rdx, rax
xor ecx, ecx
xor eax, eax
cmp byte [r8], 0
mov qword [rbp - 0x38], rdx
mov dword [rbp - 0x2c], ecx
mov qword [rbp + 0x10], rax
jne 0x14005cf68
mov rax, qword [rbp - 0x38]
mov ecx, dword [rbp - 0x2c]
mov dword [rbp - 0x54], ecx
mov qword [rbp - 0x50], rax
xor edx, edx
mov qword [rbp - 0x48], rdx
test ecx, ecx
mov qword [rbp - 0x18], rax
je 0x14005cd68
jmp 0x14005cee4
mov rax, qword [rbp - 0x48]
mov ecx, dword [rbp - 0x54]
sub ecx, 6
mov qword [rbp + 0x10], rax
jne 0x14005cf68
jmp 0x14005cefd
mov rcx, qword [rbp - 0x50]
mov rax, rcx
and rax, rax
xor rax, 0xffffffffffffffff
and rax, 0xffffffffffffffff
xor rax, 0xffffffffffffffff
mov rdx, 0xffffffffffffffff
and rdx, 0xffffffffffffffff
xor rdx, 0xffffffffffffffff
xor rcx, 0xffffffffffffffff
movabs r8, 0x3571b0b3f646a9a6
movabs r9, 0xca8e4f4c09b95659
xor r8, r9
xor rdx, r8
or rcx, rdx
xor rax, 0xffffffffffffffff
movabs rdx, 0xbdea2ddf0f71c600
movabs r8, 0x4215d220f08e39ff
xor rdx, r8
xor rcx, rdx
or rax, rcx
mov qword [rbp + 0x10], rax
mov rcx, qword [rbp - 0x10]
mov rdx, qword [rbp + 0xc8]
mov rax, qword [rbp + 0x10]
cmp byte [rdx], 0
mov qword [rbp - 0x68], rcx
mov qword [rbp - 0x60], rax
je 0x14005cfb0
jmp 0x14005d193
mov al, byte [rbp + 0x1f]
test al, 1
jne 0x14005d193
jmp 0x14005cf9d
mov rax, qword [rbp + 0x68]
mov rcx, qword [rbp + 0xd0]
mov qword [rbp - 0x68], rcx
mov qword [rbp - 0x60], rax
mov r9, qword [rbp + 0x80]
mov r8, qword [rbp + 0xb8]
mov rdx, qword [rbp + 0xc0]
mov rcx, qword [rbp + 0x88]
mov r10, qword [rbp - 0x68]
mov r11, qword [rbp - 0x60]
mov rax, r11
or rax, rax
xor rax, 0xffffffffffffffff
movabs rsi, 0x91a54299a61afb35
movabs rdi, 0x6e5abd6659e504ca
xor rsi, rdi
movabs rdi, 0xdcfaec5405181ad8
movabs rbx, 0x230513abfae7e527
xor rdi, rbx
or rsi, rdi
movabs rdi, 0xf99486a9f1a9e63e
movabs rbx, 0x66b79560e5619c1
xor rdi, rbx
xor rsi, rdi
xor rax, 0xffffffffffffffff
xor rsi, 0xffffffffffffffff
and rax, rsi
movabs rsi, 0x1535295459681cfa
movabs rdi, 0xeacad6aba697e305
xor rsi, rdi
xor r11, rsi
mov rsi, 0xffffffffffffffff
xor rsi, 0xffffffffffffffff
and r11, rsi
or rax, r11
xor rax, 0xffffffffffffffff
mov r11, qword [rcx]
mov qword [r8], r11
mov rcx, qword [rcx + 8]
mov qword [r8 + 8], rcx
sub rsp, 0x30
mov qword [rsp + 0x20], r10
mov qword [rsp + 0x28], rax
call fcn.14005bba0
mov rax, qword [rbp + 0xc8]
add rsp, 0x30
cmp byte [rax], 0
jne 0x14005d193
mov ecx, dword [0x1401f5ab0]
mov edx, dword [0x1401f5ab4]
mov eax, 0xddb49af4
xor eax, 0x224b650b
xor edx, eax
mov eax, ecx
xor eax, edx
and eax, ecx
xor ecx, ecx
sub ecx, 0x194234e3
sub eax, ecx
mov ecx, 0xc6f47e2d
xor edx, edx
div ecx
add eax, 0x9161f777
mov ecx, 0xb5feb15e
xor ecx, 0x7a2db6c9
cmp eax, ecx
je 0x14005d1a8
mov eax, dword [0x1401f5ab8]
or eax, dword [0x1401f5abc]
mov ecx, 0xf273eab9
xor edx, edx
div ecx
mov rdx, qword [rbp + 0x40]
mov r9d, 0xffffffff
xor r9d, 0x1369b646
mov r8d, eax
and r8d, r9d
mov ecx, eax
or ecx, r9d
xor ecx, 0xffffffff
imul ecx, r8d
mov r8d, eax
and r8d, 0x1369b646
or eax, 0x1369b646
imul eax, r8d
add eax, ecx
imul eax, eax, 0xa4e6251b
mov ecx, 0x784e29ee
xor ecx, 0x3a22e98b
mov r8, qword [rdx]
mov rdx, r8
add rdx, 1
mov qword [rbp - 0x78], rdx
xor r8, 0xffffffffffffffff
and rdx, r8
cmp rdx, 0
setl dl
mov byte [rbp - 0x69], dl
cmp eax, ecx
je 0x14005d0e1
mov al, byte [rbp - 0x69]
test al, 1
jne 0x14005d176
jmp 0x14005d188
sub rsp, 0x20
call fcn.140009cc0
add rsp, 0x20
jmp 0x14005d193
mov rax, qword [rbp + 0x40]
mov rcx, qword [rbp - 0x78]
mov qword [rax], rcx
lea rsp, [rbp + 0xf8]
pop rbx
pop rdi
pop rsi
pop rbp
ret
ret
invalid