Function at 0x14015fb00
Capabilities:
Encode data using xor

Disassembly:
push rbp
sub rsp, 0x170
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x28], rcx
mov qword [rbp - 8], rcx
mov eax, 0x10
mov qword [rbp + 8], rax
call fcn.140215890
sub rsp, rax
mov rax, qword [rbp + 8]
mov rcx, rsp
mov qword [rbp + 0x20], rcx
call fcn.140215890
sub rsp, rax
mov rax, rsp
mov qword [rbp], rax
mov eax, 0x20
call fcn.140215890
sub rsp, rax
mov rax, qword [rbp + 8]
mov rcx, rsp
mov qword [rbp + 0x10], rcx
call fcn.140215890
sub rsp, rax
mov rax, rsp
mov qword [rbp + 0x18], rax
sub rsp, 0x20
call fcn.14018af70
mov rcx, qword [rbp + 0x20]
add rsp, 0x20
mov rdx, rax
mov rax, qword [rbp + 0x28]
mov qword [rbp + 0x38], rdx
add rdx, 0x50
mov qword [rbp + 0x30], rdx
mov qword [rax], 0
mov qword [rax + 8], 0
mov word [rcx], 0x396
sub rsp, 0x20
call fcn.14006cf90
add rsp, 0x20
mov rcx, rax
mov rax, qword [rbp + 0x38]
mov qword [rbp + 0x40], rcx
cmp byte [rax + 0x50], 0
jne 0x14016031f
lea rcx, [rbp + 0xe0]
mov edx, 0x10
sub rsp, 0x20
call fcn.14015f9d2
mov rax, qword [rbp + 0x40]
mov r8, qword [rbp]
add rsp, 0x20
mov rcx, qword [rax]
mov qword [r8], rcx
mov rax, qword [rax + 8]
mov qword [r8 + 8], rax
movabs rdx, 0xe5c1a4f4a758a186
movabs rax, 0x1a3e5b0b2758a184
xor rdx, rax
mov r9d, 0xc2d918e1
xor r9d, 0xc2db18f8
lea rcx, [rbp + 0xe0]
sub rsp, 0x20
call fcn.1400e88cb
mov rax, qword [rbp + 0x30]
add rsp, 0x20
cmp byte [rax], 0
jne 0x14016031f
mov rax, qword [rbp + 0xe0]
mov qword [rbp - 0x10], rax
cmp byte [rbp + 0xe8], 0
jne 0x14015fc8e
sub rsp, 0x20
call fcn.14008e6f0
add rsp, 0x20
mov rax, qword [rbp + 0x30]
mov al, byte [rax]
mov cl, 0x2f
xor cl, 0x2f
cmp al, cl
jne 0x14016031f
mov rax, qword [rbp + 0x28]
mov rcx, qword [0x14022d168]
mov qword [rax], rcx
mov rcx, qword [0x14022d170]
mov qword [rax + 8], rcx
jmp 0x1401603a0
movabs rdx, 0x80db3addcd1bcede
movabs rax, 0x80db3addcd1bcec6
xor rdx, rax
lea rcx, [rbp + 0xc0]
sub rsp, 0x20
call fcn.14015f9d2
add rsp, 0x20
lea rcx, [rbp + 0xa0]
mov edx, 0x18
sub rsp, 0x20
call fcn.14015f9d2
add rsp, 0x20
mov qword [rbp + 0x90], 0
lea rax, [rbp + 0x90]
add rax, 8
mov qword [rbp - 0x20], rax
mov qword [rbp + 0x98], 0
mov word [rbp + 0x8e], 0x5d5
lea rcx, [rbp + 0x8e]
sub rsp, 0x20
call fcn.14006cf90
add rsp, 0x20
mov rcx, rax
mov rax, qword [rbp + 0x30]
mov qword [rbp - 0x18], rcx
cmp byte [rax], 0
jne 0x1401600c9
mov rax, qword [rbp - 0x18]
mov rcx, qword [rax]
mov qword [rbp + 0x68], rcx
mov rax, qword [rax + 8]
mov qword [rbp + 0x70], rax
lea rcx, [rbp + 0x78]
lea rdx, [rbp + 0x68]
sub rsp, 0x20
call fcn.14001fd14
mov rcx, qword [rbp + 0x10]
add rsp, 0x20
mov rax, qword [rbp + 0x78]
mov qword [rbp - 0x30], rax
mov rax, qword [rbp + 0x80]
mov qword [rbp - 0x28], rax
mov edx, 0x18
sub rsp, 0x20
call fcn.14015f9d2
mov r9, qword [rbp - 0x30]
mov rax, qword [rbp - 0x28]
mov rcx, qword [rbp + 0x10]
mov rdx, qword [rbp - 0x10]
mov r8, qword [rbp + 0x18]
add rsp, 0x20
mov qword [r8], r9
mov qword [r8 + 8], rax
sub rsp, 0x20
call fcn.1400e9b70
mov rax, qword [rbp + 0x30]
add rsp, 0x20
cmp byte [rax], 0
jne 0x1401600c9
mov rax, qword [rbp + 0x10]
mov rcx, qword [rax + 0x10]
mov qword [rbp + 0xd0], rcx
movups xmm0, xmmword [rax]
movaps xmmword [rbp + 0xc0], xmm0
mov rcx, qword [rax + 0x10]
mov qword [rbp + 0xb0], rcx
movups xmm0, xmmword [rax]
movaps xmmword [rbp + 0xa0], xmm0
sub rsp, 0x20
lea rcx, [rbp + 0xc0]
call fcn.1400696fc
mov rax, qword [rbp + 0x30]
add rsp, 0x20
mov cl, byte [rbp + 0xb0]
test cl, cl
sete cl
mov byte [rbp - 0x32], cl
mov al, byte [rax]
test al, al
setne al
mov byte [rbp - 0x31], al
or al, cl
test al, 1
jne 0x14015fe5c
mov rax, qword [rbp + 0xa0]
mov qword [rbp + 0x58], rax
mov rax, qword [rbp + 0xa8]
mov qword [rbp + 0x60], rax
lea rcx, [rbp + 0x90]
lea rdx, [rbp + 0x58]
sub rsp, 0x20
call fcn.14001c4cf
mov rax, qword [rbp + 0x30]
add rsp, 0x20
mov al, byte [rax]
mov cl, 0x47
xor cl, 0x47
cmp al, cl
setne al
mov byte [rbp - 0x33], al
jmp 0x14015feb5
mov al, byte [rbp - 0x31]
test al, 1
jne 0x1401600c9
jmp 0x14015fe6c
lea rcx, [rbp + 0x48]
sub rsp, 0x20
call fcn.14008e95c
mov rax, qword [rbp + 0x30]
add rsp, 0x20
mov rcx, qword [rbp + 0x48]
mov qword [rbp - 0x48], rcx
mov rcx, qword [rbp + 0x50]
mov qword [rbp - 0x40], rcx
cmp byte [rax], 0
jne 0x1401600c9
mov rax, qword [rbp - 0x20]
mov rcx, qword [rbp - 0x40]
mov rdx, qword [rbp - 0x48]
mov qword [rbp + 0x90], rdx
mov qword [rax], rcx
xor eax, eax
mov byte [rbp - 0x33], al
mov al, byte [rbp - 0x33]
mov byte [rbp - 0x49], al
mov eax, dword [0x1402203c8]
mov ecx, 0x9d3b38b4
xor ecx, 0xf8f7e1b8
xor eax, ecx
mov ecx, dword [0x1402203cc]
xor ecx, 0xf9d2f18c
add eax, ecx
mov ecx, 0xb3380542
xor ecx, 0xb4986539
imul eax, ecx
mov ecx, eax
xor ecx, 0xffffffff
mov edx, 0xd66107ce
xor edx, 0x36e6f213
and edx, ecx
mov r8d, 0xa4542ba3
xor r8d, 0x44d3de7e
mov ecx, 0x5747bb69
xor ecx, 0xa8b84496
xor r8d, ecx
mov ecx, eax
and ecx, r8d
imul ecx, edx
mov r8d, 0x39a17e1e
xor r8d, 0xd9268bc3
mov edx, eax
and edx, r8d
or eax, 0xe087f5dd
imul eax, edx
add eax, ecx
add eax, 0xade9a00e
cmp eax, 0x2b1f3b02
je 0x1401603ad
mov dl, byte [rbp - 0x32]
mov cl, byte [rbp - 0x49]
mov eax, dword [0x1402203d0]
xor eax, 0xa0e09523
mov r10d, dword [0x1402203d4]
mov r11d, r10d
not r11d
mov r9d, eax
and r9d, r11d
mov r8d, eax
or r8d, r11d
not r8d
imul r8d, r9d
mov r9d, eax
and r9d, r10d
or eax, r10d
imul eax, r9d
add eax, r8d
imul rax, rax, 0x5182e641
shr rax, 0x3d
or eax, 0xf47368ed
or cl, dl
mov byte [rbp - 0x4a], cl
cmp eax, 0x5f759484
jb 0x14015ff4b
mov al, byte [rbp - 0x4a]
test al, 1
jne 0x1401600da
jmp 0x14015ffbc
mov rax, qword [rbp + 0x28]
mov rcx, qword [rbp + 0x90]
mov qword [rax], rcx
mov rcx, qword [rbp + 0x98]
mov qword [rax + 8], rcx
lea rcx, [rbp + 0x90]
sub rsp, 0x20
call fcn.1400123e0
mov rax, qword [rbp - 0x20]
add rsp, 0x20
mov rax, qword [rax]
mov qword [rbp - 0x58], rax
cmp rax, 0
je 0x140160063
mov rax, qword [rbp - 0x58]
mov rax, qword [rax]
xor rax, 0xffffffffffffffff
mov rdx, 0xffffffffffffffff
movabs rcx, 0x4000000000000000
xor rdx, rcx
mov rcx, 0xffffffffffffffff
movabs r8, 0xb9cdc7b981618387
xor rcx, r8
or rax, rdx
movabs rdx, 0xb9cdc7b981618387
or rcx, rdx
xor rax, 0xffffffffffffffff
and rax, rcx
cmp rax, 0
jne 0x140160063
mov rcx, qword [rbp - 0x58]
sub rsp, 0x20
call fcn.140010918
add rsp, 0x20
lea rcx, [rbp + 0xa0]
sub rsp, 0x20
call fcn.140069710
mov rax, qword [rbp + 0x30]
add rsp, 0x20
cmp byte [rax], 0
jne 0x1401600d5
lea rcx, [rbp + 0xc0]
sub rsp, 0x20
call fcn.140069710
mov rax, qword [rbp + 0x30]
add rsp, 0x20
cmp byte [rax], 0
jne 0x1401600d5
mov rcx, qword [rbp - 0x10]
sub rsp, 0x20
call fcn.1400e9011
mov rax, qword [rbp + 0x30]
add rsp, 0x20
mov al, byte [rax]
cmp al, 0
je 0x1401603a0
jmp 0x14016031f
mov rax, qword [rbp + 0x30]
mov byte [rax], 0
jmp 0x1401602b8
jmp 0x1401602ed
mov al, byte [rbp - 0x49]
test al, 1
jne 0x140160247
mov rax, qword [rbp - 0x20]
mov rcx, qword [rbp + 0x28]
mov rdx, qword [0x14022d168]
mov qword [rcx], rdx
mov rdx, qword [0x14022d170]
mov qword [rcx + 8], rdx
mov rax, qword [rax]
mov qword [rbp - 0x60], rax
cmp rax, 0
je 0x14016014f
mov rax, qword [rbp - 0x60]
mov rax, qword [rax]
movabs rcx, 0x8b3d58dce9d53f1d
movabs rdx, 0xcb3d58dce9d53f1d
xor rcx, rdx
and rax, rcx
cmp rax, 0
jne 0x14016014f
mov rcx, qword [rbp - 0x60]
sub rsp, 0x20
call fcn.140010918
add rsp, 0x20
mov eax, dword [str.UM_M]
xor eax, 0xb02c9541
mov ecx, dword [0x1402203dc]
mov edx, 0xb6ecdb5e
xor edx, 0x81f5a192
xor ecx, edx
add eax, ecx
and eax, 0xe040c8e9
and eax, 0x929fd3f4
mov ecx, 0xc0d6592e
xor edx, edx
div ecx
mov ecx, 0x1a02f79
xor ecx, 0xcb0fe71d
cmp eax, ecx
ja 0x1401603b6
mov eax, dword [0x1402203e0]
or eax, dword [0x1402203e4]
mov ecx, 0xf3cd4e84
xor edx, edx
div ecx
mov ecx, 0xb18e7be5
xor edx, edx
div ecx
mov ecx, 0x4699d64a
xor ecx, 0x3a58baa0
imul eax, ecx
mov dword [rbp - 0x68], eax
lea rcx, [rbp + 0xa0]
sub rsp, 0x20
call fcn.140069710
mov rcx, qword [rbp + 0x30]
mov eax, dword [rbp - 0x68]
add rsp, 0x20
cmp byte [rcx], 0
sete cl
mov byte [rbp - 0x61], cl
cmp eax, 0xc243ab59
je 0x140160195
mov al, byte [rbp - 0x61]
test al, 1
jne 0x140160203
jmp 0x1401602ed
lea rcx, [rbp + 0xc0]
sub rsp, 0x20
call fcn.140069710
mov rax, qword [rbp + 0x30]
add rsp, 0x20
cmp byte [rax], 0
jne 0x1401602ed
mov rcx, qword [rbp - 0x10]
sub rsp, 0x20
call fcn.1400e9011
mov rax, qword [rbp + 0x30]
add rsp, 0x20
cmp byte [rax], 0
je 0x1401603a0
jmp 0x14016031f
mov rcx, qword [rbp + 0x30]
mov rax, qword [rbp - 0x20]
mov rax, qword [rax]
mov qword [rbp - 0x70], rax
mov byte [rcx], 0
cmp rax, 0
je 0x1401602b8
mov rax, qword [rbp - 0x70]
mov rcx, qword [rax]
mov rdx, 0xffffffffffffffff
movabs rax, 0x4000000000000000
xor rdx, rax
mov rax, rcx
xor rax, rdx
and rax, rcx
movabs rcx, 0x1aca120c17f7abdc
movabs rdx, 0x1aca120c17f7abdc
xor rcx, rdx
cmp rax, rcx
jne 0x1401602b8
mov rcx, qword [rbp - 0x70]
sub rsp, 0x20
call fcn.140010918
add rsp, 0x20
lea rcx, [rbp + 0xa0]
sub rsp, 0x20
call fcn.140069710
mov rax, qword [rbp + 0x30]
add rsp, 0x20
cmp byte [rax], 0
jne 0x1401602ed
lea rcx, [rbp + 0xc0]
sub rsp, 0x20
call fcn.140069710
add rsp, 0x20
mov rax, qword [rbp + 0x30]
mov rcx, qword [rbp - 0x10]
mov byte [rax], 0
sub rsp, 0x20
call fcn.1400e9011
mov rax, qword [rbp + 0x30]
add rsp, 0x20
mov al, byte [rax]
mov cl, 0x2c
xor cl, 0x2c
cmp al, cl
jne 0x14016031f
mov rax, qword [rbp + 0x30]
mov byte [rax], 1
sub rsp, 0x20
call fcn.14015fa5d
add rsp, 0x20
mov rax, qword [rax]
mov qword [rbp - 0x78], rax
cmp word [rax + 0x12], 1
jle 0x1401603a0
mov rax, qword [rbp - 0x78]
mov rax, qword [rax + 0x18]
mov eax, dword [rax + 8]
mov ecx, 0x600690c5
xor ecx, 0xa574b2a4
cmp eax, ecx
jne 0x1401603a0
mov rax, qword [rbp + 0x30]
mov byte [rax], 0
sub rsp, 0x20
call fcn.14015fa6f
add rsp, 0x20
mov rcx, rax
sub rsp, 0x20
call fcn.1400a4060
mov rax, qword [rbp + 0x30]
add rsp, 0x20
mov al, byte [rax]
mov cl, 0xbc
xor cl, 0xbc
cmp al, cl
jne 0x1401603a0
sub rsp, 0x20
call fcn.14015facb
add rsp, 0x20
mov rax, qword [rbp - 8]
lea rsp, [rbp + 0xf0]
pop rbp
ret
hlt
invalid