Function at 0x1400fc630
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x218
lea rbp, [rsp + 0x80]
movaps xmmword [rbp + 0x180], xmm6
mov qword [rbp + 0x178], 0xfffffffffffffffe
mov rdi, rdx
mov qword [rbp + 0x168], rcx
nop word [rax + rax]
mov eax, dword [0x1405315dc]
cmp eax, 0x3b
jg 0x1400fc693
movsxd rcx, dword [0x140401088]
mov eax, dword [0x1405315d8]
lea edx, [rax - 1]
imul edx, eax
test dl, 1
je 0x1400fc6ac
mov eax, dword [0x140401088]
mov eax, dword [0x1405315d8]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x1400fc670
jmp 0x1400fc67b
mov r8d, dword [0x140401074]
test rdi, rdi
je 0x1400fc775
lea rax, [0x140401088]
add rcx, rax
mov eax, dword [rdi + 0xc4]
mov rdx, qword [0x1405315e8]
mov r9, rax
not r9
and r9, rdx
not edx
mov r10d, eax
xor r10d, edx
and edx, eax
or r9, rdx
and r10d, eax
lea rax, [r9 + r10*2]
lea r12, [rdi + rax]
add r12, 0xd4
xor eax, eax
test al, al
nop
xor eax, eax
test al, al
jne 0x1400fc700
mov eax, dword [0x1404d4500]
mov qword [rbp + 0x160], rax
add eax, 0x329c7b9f
mov edx, dword [0x1405315dc]
cmp edx, 0x11
nop word cs:[rax + rax]
mov edx, eax
xor edx, 1
mov r9d, eax
and r9d, 1
lea r9d, [rdx + r9*2]
add r9d, 0xcd638461
mov dword [0x1404d4500], r9d
xor edx, edx
test dl, dl
jne 0x1400fc730
mov rax, qword [rbp + 0x160]
xor r9d, eax
not r9d
mov dword [rbp + 0x174], r9d
test r9d, eax
je 0x1400fc77c
xor r14d, r14d
jmp 0x1400fc878
xor eax, eax
jmp 0x1400fce5a
xor r9d, r9d
mov r14d, 0
test r8d, r8d
jle 0x1400fc878
mov r10d, 0xbb74bbbd
lea rax, [fcn.1400fc630]
lea r11d, [rax + rax]
add r11d, 0x2c80
mov ebx, 0xbb74bbbc
xor r15d, r15d
nop
mov eax, dword [0x1405315dc]
cmp eax, 0x49
jl 0x1400fc7d3
nop dword [rax + rax]
mov eax, dword [0x1405315d8]
lea edx, [rax - 1]
imul edx, eax
test dl, 1
jne 0x1400fc7c0
jmp 0x1400fc7b0
mov rsi, r12
movsxd rax, r9d
nop dword [rax]
mov edx, dword [0x1404d522c]
add edx, r10d
test edx, r11d
jne 0x1400fc7f8
movzx r12d, byte [rcx + rax]
test rdi, rdi
jne 0x1400fc809
movzx edx, byte [rcx + rax]
mov edx, dword [0x1405315dc]
cmp edx, 0x1c
jge 0x1400fc7e0
jmp 0x1400fc7ee
mov edx, dword [0x1405315d8]
lea eax, [rdx - 1]
imul eax, edx
mov r14d, dword [0x1404d522c]
mov edx, 0xbb74bbbe
add r14d, edx
xor edx, edx
div r14d
test edx, edx
mov r14d, r15d
not r14b
movzx eax, byte [0x1405315e0]
add al, r14b
mov edx, dword [0x1405315d8]
lea r13d, [rdx + 1]
imul r13d, edx
and r13d, 1
mov edx, dword [0x1404d522c]
add edx, ebx
cmp r13d, edx
jne 0x1400fc82b
and al, r12b
or r14b, r12b
not r14b
or r14b, al
inc r9d
mov r15d, r14d
cmp r9d, r8d
mov r12, rsi
jl 0x1400fc7b0
mov eax, dword [0x1405315d8]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x1400fcea0
jmp 0x1400fce7f
add rdx, rdx
add r9, rdx
mov qword [0x1405315e8], r9
cmp rcx, 0x20
jae 0x1400fce75
add rax, 0x28
mov rdx, rax
mov rcx, qword [rbp + 0x128]
call fcn.1400a6550
add r12, r13
add r15, qword [0x1404d5220]
movabs rax, 0x4338844632b5d30e
add r15, rax
mov eax, dword [rdi + 0xc8]
cmp r15, rax
jae 0x1400fce4c
mov rsi, rdi
movzx r13d, word [r12]
lea rax, [r13 - 0xc4]
neg rax
cmp r13, 0xc4
mov r8d, 0
cmovb r8, rax
lea rcx, [r13 - 0x60]
add rcx, rbp
xor edx, edx
call fcn.1403e40c0
lea rcx, [rbp - 0x60]
mov qword [rbp + 0x158], r12
mov rdx, r12
mov r8, r13
call fcn.1403e3a10
mov qword [rbp + 0x148], 0
mov qword [rbp + 0x150], 0xf
mov byte [rbp + 0x138], 0
lea rdi, [rbp - 0x1c]
mov rcx, rdi
mov edx, 0x5ef59003
mov r8d, 0xa2fd3d9e
mov r9d, 0x9b5560e6
call fcn.1400a9690
mov r12, rax
cmp rax, 0xf
jbe 0x1400fc9a0
lea rcx, [rbp + 0x138]
mov rdx, r12
mov r9, rdi
call fcn.140087e80
jmp 0x1400fc9c2
mov qword [rbp + 0x148], r12
lea rcx, [rbp + 0x138]
mov rdx, rdi
mov r8, r12
call fcn.1403e3a10
mov byte [rbp + r12 + 0x138], 0
lea rax, [0x1403fe9c8]
mov qword [rbp + 0x130], rax
lea rax, [0x1404001a8]
mov qword [rbp + 0xe0], rax
lea rax, [rbp + 0xe8]
movups xmmword [rax], xmm6
mov qword [rax + 0x10], 0
mov byte [rbp + 0x100], 1
movups xmmword [rax + 0x28], xmm6
movups xmmword [rax + 0x1c], xmm6
movzx eax, word [rbp - 0x5e]
mov ecx, eax
not ecx
mov edx, ecx
and edx, 1
xor eax, 0xfffffffe
or eax, edx
not eax
and ecx, 0xfffffffe
or ecx, edx
or ecx, eax
cmp cx, 0xffff
mov rdi, rsi
je 0x1400fcaf0
cmp qword [rbp + 0xe8], 0
je 0x1400fca4d
mov rcx, qword [rbp + 0xe8]
test rcx, rcx
je 0x1400fca4d
mov edx, 0xa22f2194
mov r8d, 0x41b646bd
call fcn.1400a6550
lea rax, [rbp + 0xe8]
movups xmmword [rax], xmm6
mov qword [rax + 0x10], 0
mov byte [rbp + 0x100], 1
mov ecx, 0x40
call fcn.1403bba74
mov qword [rbp + 0xe8], rax
mov qword [rbp + 0xf8], 0x40
mov qword [rbp + 0xf0], 0x40
lea rcx, [rbp - 0x1c]
movups xmm0, xmmword [rcx - 0x40]
movups xmm1, xmmword [rcx - 0x30]
movups xmm2, xmmword [rcx - 0x20]
movups xmm3, xmmword [rcx - 0x10]
movups xmmword [rax + 0x30], xmm3
movups xmmword [rax + 0x20], xmm2
movups xmmword [rax + 0x10], xmm1
movups xmmword [rax], xmm0
mov r12, qword [rbp + 0x108]
jmp 0x1400fcac4
add r12, 8
cmp r12, qword [rbp + 0x110]
je 0x1400fcaf0
mov rcx, qword [r12]
test rcx, rcx
je 0x1400fcac0
mov rax, qword [rcx]
mov rax, qword [rax + 8]
mov edx, 1
call qword [case.0x1401138cb.0]
jmp 0x1400fcac0
lea rcx, [rbp + 0x68]
lea rdx, [rbp + 0x130]
lea r8, [rbp + 0xe0]
call fcn.1400ffa10
mov rcx, qword [rbp + 0x120]
lea rdx, [rbp + 0xd0]
lea r8, [rbp + 0x68]
call fcn.1400ffc70
lea rcx, [rbp + 0x90]
call fcn.140073e00
mov rax, qword [rbp + 0x88]
cmp rax, 0x10
mov r12, qword [rbp + 0x158]
jb 0x1400fcc45
mov rcx, qword [rbp + 0x70]
mov rdx, qword [0x1404d5220]
add rdx, rax
movabs r8, 0x4338844632b5d30e
add rdx, r8
cmp rdx, 0x1000
jb 0x1400fcc40
mov r8, qword [rcx - 8]
mov rdx, qword [0x1404d5220]
mov r9, rcx
movabs r10, 0xa206efb922ea629c
xor r9, r10
movabs r10, 0x2206efb922ea629c
and rcx, r10
lea rcx, [r9 + rcx*2]
add rcx, rdx
mov r9, rdx
movabs r11, 0x4338844632b5d30d
and r9, r11
mov r10, rdx
xor r10, r11
lea r9, [r10 + r9*2]
sub r9, rcx
add r9, r8
mov rcx, rdx
movabs r11, 0x3cc77bb9cd4a2cf2
xor rcx, r11
and rcx, rdx
add rcx, rcx
mov r11, r10
xor r11, rcx
and rcx, r10
lea rcx, [r11 + rcx*2]
sub rcx, r9
movabs r9, 0xa131948d0fcb7069
add rcx, r9
movabs r9, 0x4338844632b5d32d
add rdx, r9
cmp rcx, rdx
jae 0x1400fce7a
movabs rcx, 0x2a234398aeb64cd6
add rax, rcx
mov rcx, rax
movabs rdx, 0xe1de109094ef96df
xor rcx, rdx
movabs rdx, 0x61de109094ef96df
and rax, rdx
lea rdx, [rcx + rax*2]
movabs rax, 0xf3feabd6bc5a1c73
add rdx, rax
mov rcx, r8
call fcn.1400a6550
lea rcx, [rbp + 0xe0]
call fcn.140073e00
mov rax, qword [rbp + 0x150]
cmp rax, 0x10
jb 0x1400fc8ca
mov rcx, qword [rbp + 0x138]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x1400fc8c5
mov rdx, qword [rcx - 8]
mov qword [rbp + 0x128], rdx
sub rcx, rdx
add rcx, 0xfffffffffffffff8
mov edx, dword [0x1405315dc]
cmp edx, 0x2a
mov r8, qword [rbp + 0x160]
mov esi, dword [rbp + 0x174]
jge 0x1400fcce3
nop word cs:[rax + rax]
mov edx, esi
and edx, r8d
cmp edx, 1
mov r9d, 0
sbb r9d, r9d
movzx edx, byte [0x1404d5228]
sub dl, byte [0x14040108c]
mov r10d, dword [0x1405315d8]
lea r11d, [r10 - 1]
imul r11d, r10d
test r11b, 1
je 0x1400fccf0
movzx edx, byte [0x14040108c]
jmp 0x1400fccb0
add dl, 0x39
add dl, r14b
neg dl
xor esi, esi
nop word [rax + rax]
test sil, sil
jne 0x1400fcd1a
mov r10d, dword [0x1405315d8]
lea r11d, [r10 - 1]
imul r11d, r10d
test r11b, 1
je 0x1400fcd40
mov r8d, dword [0x1405315d8]
lea r10d, [r8 - 1]
imul r10d, r8d
test r10b, 1
jne 0x1400fcd00
jmp 0x1400fcd05
mov r10d, edx
not r10b
mov r11d, r9d
not r11b
mov r12d, edx
and r12b, r11b
xor r11b, r10b
and r10b, r9b
or r12b, r10b
and dl, r9b
or dl, r11b
not dl
or dl, r12b
not dl
movzx edx, dl
mov r10, qword [0x1405315e8]
mov r9, r10
xor r9, rdx
mov r11d, dword [0x1405315d8]
mov r12d, dword [0x1404d522c]
add r12d, r11d
dec r12d
imul r12d, r11d
test r12b, 1
jne 0x1400fce20
nop word [rax + rax]
mov r11d, dword [0x1405315dc]
cmp r11d, 0x42
jge 0x1400fce20
mov r11, rdx
not r11
mov r12, r10
not r12
and r11, r12
and edx, r10d
or rdx, r11
xor rdx, r12
and rdx, r10
mov r12, qword [rbp + 0x158]
mov r8d, 0xbb74bbbc
nop word cs:[rax + rax]
mov r10d, dword [0x1405315d8]
lea r11d, [r10 - 1]
imul r11d, r10d
and r11d, 1
mov r10d, dword [0x1404d522c]
add r10d, r8d
cmp r11d, r10d
je 0x1400fc8a0
mov r10d, dword [0x1405315dc]
cmp r10d, 0x2b
jmp 0x1400fcde0
lea r8d, [rbx + rbx]
add r8d, 0x18e0
mov r12d, r8d
not r12d
mov r11d, r8d
and r11d, r12d
and r12d, 0xfffffffe
or r12d, r11d
xor r12d, r8d
cmp r12d, 0xfffffffe
jne 0x1400fce20
jmp 0x1400fcda0
mov rcx, qword [rbp + 0x168]
cmp qword [rcx + 0x58], rax
sete al
movaps xmm6, xmmword [rbp + 0x180]
add rsp, 0x218
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
call fcn.14039c09c
call fcn.14039c09c
mov ecx, dword [0x1405315d8]
lea eax, [rcx - 1]
imul eax, ecx
mov ecx, 0xbb74bbbe
add ecx, dword [0x1404d522c]
xor edx, edx
div ecx
test edx, edx
je 0x1400fcead
nop
mov eax, dword [0x1405315dc]
cmp eax, 0x15
jge 0x1400fcea0
jmp 0x1400fce7f
mov rax, qword [rbp + 0x168]
add rax, 0x50
mov qword [rbp + 0x120], rax
xorps xmm6, xmm6
lea rbx, [fcn.1400fc630]
xor r15d, r15d
jmp 0x1400fc8e1