Function at 0x14004dc70
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
mov dword [rsp + 0x18], r8d
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x5a8]
sub rsp, 0x6a8
mov rax, qword [0x14019f300]
xor rax, rsp
mov qword [rbp + 0x590], rax
mov rdi, r9
mov rsi, rdx
mov qword [rsp + 0x50], rdx
mov r15, rcx
mov qword [rsp + 0x68], rcx
xor r14d, r14d
lea rdx, str.pragma_once_n
call fcn.140026940
mov rbx, qword [rsi + 0x28]
mov rbx, qword [rbx]
test byte [rbp + 0x600], 4
je 0x14004de71
cmp byte [rbx + 0x19], r14b
jne 0x14004df09
movabs r12, 0xcbf29ce484222325
movabs r14, 0x100000001b3
nop word [rax + rax]
mov rdx, qword [rbx + 0x20]
lea rcx, [rbp + 0xb8]
call fcn.140020f40
nop
lea rdx, [rbp + 0xb8]
cmp qword [rbp + 0xd0], 0xf
cmova rdx, qword [rbp + 0xb8]
mov r9, r12
xor ecx, ecx
mov r8, qword [rbp + 0xc8]
test r8, r8
je 0x14004dd53
nop dword [rax]
movzx eax, byte [rcx + rdx]
xor r9, rax
imul r9, r14
inc rcx
cmp rcx, r8
jb 0x14004dd40
lea r8, [rbp + 0xb8]
lea rdx, [rsp + 0x58]
mov rcx, rdi
call fcn.140031380
cmp qword [rax + 8], 0
je 0x14004ddaf
lea r8, [rbp + 0xb8]
lea rdx, [rsp + 0x70]
mov rcx, rdi
call fcn.140027a60
mov rdx, qword [rax]
add rdx, 0x30
lea rax, [rbp + 0xb8]
cmp rax, rdx
je 0x14004ddaf
mov r8, qword [rdx + 0x10]
cmp qword [rdx + 0x18], 0xf
jbe 0x14004dda3
mov rdx, qword [rdx]
lea rcx, [rbp + 0xb8]
call fcn.140024690
lea rdx, str.include__
mov rcx, r15
call fcn.140026940
lea rdx, [rbp + 0xb8]
cmp qword [rbp + 0xd0], 0xf
cmova rdx, qword [rbp + 0xb8]
mov r8, qword [rbp + 0xc8]
mov rcx, rax
call fcn.140032d60
lea rdx, [0x140131eec]
mov rcx, rax
call fcn.140026940
mov rcx, rax
call fcn.140026bf0
nop
lea rcx, [rbp + 0xb8]
call fcn.140024630
mov rax, qword [rbx + 0x10]
cmp byte [rax + 0x19], 0
je 0x14004de38
mov rax, qword [rbx + 8]
cmp byte [rax + 0x19], 0
jne 0x14004de33
nop dword [rax]
cmp rbx, qword [rax + 0x10]
jne 0x14004de33
mov rbx, rax
mov rax, qword [rax + 8]
cmp byte [rax + 0x19], 0
je 0x14004de20
mov rbx, rax
jmp 0x14004de5f
mov rbx, rax
mov rcx, qword [rax]
cmp byte [rcx + 0x19], 0
jne 0x14004de5f
nop dword [rax]
nop dword [rax + rax]
mov rbx, rcx
mov rax, qword [rcx]
mov rcx, rax
cmp byte [rax + 0x19], 0
je 0x14004de50
cmp byte [rbx + 0x19], 0
je 0x14004dd00
xor r14d, r14d
jmp 0x14004df09
cmp byte [rbx + 0x19], r14b
jne 0x14004df09
nop dword [rax + rax]
lea rdx, str.____dependency:
mov rcx, r15
call fcn.140026940
mov rdx, qword [rbx + 0x20]
mov r8, qword [rdx + 0x10]
cmp qword [rdx + 0x18], 0xf
jbe 0x14004dea1
mov rdx, qword [rdx]
mov rcx, rax
call fcn.140032d60
mov rcx, rax
call fcn.140026bf0
mov rax, qword [rbx + 0x10]
cmp byte [rax + 0x19], r14b
je 0x14004dedd
mov rax, qword [rbx + 8]
cmp byte [rax + 0x19], r14b
jne 0x14004ded8
cmp rbx, qword [rax + 0x10]
jne 0x14004ded8
mov rbx, rax
mov rax, qword [rax + 8]
cmp byte [rax + 0x19], r14b
je 0x14004dec5
mov rbx, rax
jmp 0x14004deff
mov rbx, rax
mov rcx, qword [rax]
cmp byte [rcx + 0x19], r14b
jne 0x14004deff
nop dword [rax]
mov rbx, rcx
mov rax, qword [rcx]
mov rcx, rax
cmp byte [rax + 0x19], r14b
je 0x14004def0
cmp byte [rbx + 0x19], r14b
je 0x14004de80
lea rdx, [0x1401317f8]
mov rcx, r15
call fcn.140026940
lea rax, [rbp + 0x80]
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x60], r15
mov byte [rbp + 0x81], 0
mov byte [rbp + 0x82], 0
lea rax, [rbp + 0x80]
mov qword [rbp - 0x60], rax
lea rax, [rbp + 0x81]
mov qword [rbp - 0x58], rax
mov qword [rbp - 0x50], r15
lea rax, [rbp + 0x80]
mov qword [rbp + 0xf8], rax
mov qword [rbp + 0x100], r15
lea rax, [rbp + 0x81]
mov qword [rbp + 0x108], rax
lea rax, [rbp + 0x600]
mov qword [rbp + 0x110], rax
lea rax, [rbp + 0x82]
mov qword [rbp + 0x118], rax
test byte [rbp + 0x600], 2
je 0x14004dfb6
lea rdx, [rsi + 0x38]
lea rcx, [rsp + 0x58]
call fcn.14004ec60
lea rdx, [0x1401317f8]
mov rcx, r15
call fcn.140026940
mov rbx, qword [rsi + 0x80]
mov qword [rsp + 0x40], rbx
mov rax, qword [rsi + 0x88]
mov qword [rsp + 0x58], rax
cmp rbx, rax
je 0x14004e543
lea r13, [rbx + 0x30]
nop dword [rax + rax]
lea rdx, str.____Enum
mov rcx, r15
call fcn.140026940
lea rdx, [r13 - 0x18]
cmp qword [r13], 0xf
jbe 0x14004dffd
mov rdx, qword [rdx]
mov r8, qword [r13 - 8]
mov rcx, rax
call fcn.140032d60
mov rcx, rax
call fcn.140026bf0
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp + 0x120], xmm0
movups xmmword [rbp + 0x130], xmm0
movups xmmword [rbp + 0x140], xmm0
movups xmmword [rbp + 0x150], xmm0
movups xmmword [rbp + 0x160], xmm0
movups xmmword [rbp + 0x170], xmm0
mov dword [rbp + 0x180], eax
mov r8d, dword [r13 + 0x48]
mov r9d, r8d
lea rdx, str.Size:_0x_02d___d_bytes_
lea rcx, [rbp + 0x120]
call fcn.140047fd0
lea rdx, [0x140131858]
mov rcx, r15
call fcn.140026940
mov rcx, rax
lea rdx, [rbp + 0x120]
call fcn.140026940
mov rcx, rax
call fcn.140026bf0
lea rdx, str.enum_class
mov rcx, r15
call fcn.140026940
lea rdx, [r13 + 8]
cmp qword [r13 + 0x20], 0xf
jbe 0x14004e0a3
mov rdx, qword [rdx]
mov r8, qword [r13 + 0x18]
mov rcx, rax
call fcn.140032d60
lea rdx, [0x140131a88]
mov rcx, rax
call fcn.140026940
lea rdx, [r13 + 0x28]
cmp qword [r13 + 0x40], 0xf
jbe 0x14004e0cc
mov rdx, qword [rdx]
mov r8, qword [r13 + 0x38]
mov rcx, rax
call fcn.140032d60
mov rcx, rax
call fcn.140026bf0
lea rdx, [0x14012c6a0]
mov rcx, r15
call fcn.140026940
mov rcx, rax
call fcn.140026bf0
mov r12d, r14d
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp + 0x88], xmm0
mov qword [rbp + 0x98], rax
movups xmmword [rbp - 0x40], xmm0
mov qword [rbp - 0x30], r14
mov qword [rbp - 0x28], r14
mov r8d, 5
lea rdx, str.float
lea rcx, [rbp - 0x40]
call fcn.14000e030
nop
xorps xmm0, xmm0
movups xmmword [rbp - 0x20], xmm0
mov qword [rbp - 0x10], r14
mov qword [rbp - 8], r14
mov r8d, 3
lea rdx, [0x14012b824]
lea rcx, [rbp - 0x20]
call fcn.14000e030
nop
xorps xmm0, xmm0
movups xmmword [rbp], xmm0
mov qword [rbp + 0x10], r14
mov qword [rbp + 0x18], r14
mov r8d, 4
lea rdx, str.bool
lea rcx, [rbp]
call fcn.14000e030
nop
xorps xmm0, xmm0
movups xmmword [rbp + 0x20], xmm0
mov qword [rbp + 0x30], r14
mov qword [rbp + 0x38], r14
mov r8d, 6
lea rdx, str.double
lea rcx, [rbp + 0x20]
call fcn.14000e030
nop
xorps xmm0, xmm0
movups xmmword [rbp + 0x40], xmm0
mov qword [rbp + 0x50], r14
mov qword [rbp + 0x58], r14
mov r8d, 4
lea rdx, str.long
lea rcx, [rbp + 0x40]
call fcn.14000e030
nop
xorps xmm0, xmm0
movups xmmword [rbp + 0x60], xmm0
mov qword [rbp + 0x70], r14
mov qword [rbp + 0x78], r14
mov r8d, 4
lea rdx, str.char
lea rcx, [rbp + 0x60]
call fcn.14000e030
nop
xorps xmm0, xmm0
movdqu xmmword [rbp + 0x88], xmm0
mov qword [rbp + 0x98], r14
mov edx, 6
call fcn.14002e170
mov rbx, rax
mov qword [rbp + 0x88], rax
mov qword [rbp + 0x90], rax
lea rcx, [rax + 0xc0]
mov qword [rbp + 0x98], rcx
lea rax, [rbp + 0x88]
mov qword [rsp + 0x70], rax
lea rdi, [rbp - 0x40]
xorps xmm0, xmm0
movups xmmword [rbp + 0xa0], xmm0
mov qword [rbp + 0xa0], rbx
mov qword [rbp + 0xa8], rbx
lea rax, [rbp + 0x88]
mov qword [rbp + 0xb0], rax
nop
mov rdx, rdi
mov rcx, rbx
call fcn.140020f40
add rbx, 0x20
mov qword [rbp + 0xa8], rbx
add rdi, 0x20
lea rax, [rbp + 0x80]
cmp rdi, rax
jne 0x14004e260
mov qword [rbp + 0x90], rbx
lea r9, [fcn.14000c2e0]
mov edx, 0x20
mov r8d, 6
lea rcx, [rbp - 0x40]
call fcn.1400e06c4
mov rsi, qword [r13 + 0x50]
mov qword [rsp + 0x48], rsi
mov r14, qword [r13 + 0x58]
mov qword [rsp + 0x70], r14
cmp rsi, r14
je 0x14004e4f9
inc r12d
mov rdx, rsi
lea rcx, [rbp + 0xd8]
call fcn.140020f40
nop
mov rbx, qword [rbp + 0x88]
mov rdi, qword [rbp + 0x90]
cmp rbx, rdi
je 0x14004e41d
mov r14, qword [rbp + 0xf0]
mov rsi, qword [rbp + 0xe8]
mov r15, qword [rbp + 0xd8]
nop dword [rax]
nop word [rax + rax]
lea rdx, [rbp + 0xd8]
cmp r14, 0xf
cmova rdx, r15
mov r8, qword [rbx + 0x10]
mov rcx, rbx
cmp qword [rbx + 0x18], 0xf
jbe 0x14004e330
mov rcx, qword [rbx]
cmp r8, rsi
jne 0x14004e33e
call fcn.140113760
test eax, eax
je 0x14004e347
add rbx, 0x20
cmp rbx, rdi
jne 0x14004e310
mov rsi, qword [rsp + 0x48]
mov r15, qword [rsp + 0x68]
mov r14, qword [rsp + 0x70]
cmp rbx, rdi
je 0x14004e41d
lea r9, [rbp + 0xb5]
test r12d, r12d
jns 0x14004e3a2
mov ecx, r12d
neg ecx
dec r9
mov eax, 0xcccccccd
mul ecx
shr edx, 3
movzx eax, dl
shl al, 2
lea r8d, [rax + rdx]
add r8b, r8b
sub cl, r8b
add cl, 0x30
mov byte [r9], cl
mov ecx, edx
test edx, edx
jne 0x14004e370
dec r9
mov byte [r9], 0x2d
jmp 0x14004e3da
mov r8d, r12d
nop word [rax + rax]
dec r9
mov eax, 0xcccccccd
mul r8d
shr edx, 3
movzx eax, dl
shl al, 2
lea ecx, [rax + rdx]
add cl, cl
sub r8b, cl
add r8b, 0x30
mov byte [r9], r8b
mov r8d, edx
test edx, edx
jne 0x14004e3b0
lea r8, [rbp + 0xb5]
mov rdx, r9
lea rcx, [rbp - 0x80]
call fcn.140030270
nop
lea rdx, [rbp - 0x80]
cmp qword [rbp - 0x68], 0xf
cmova rdx, qword [rbp - 0x80]
mov r8, qword [rbp - 0x70]
lea rcx, [rbp + 0xd8]
call fcn.1400247f0
nop
lea rcx, [rbp - 0x80]
call fcn.140024630
mov rdi, qword [rbp + 0x90]
cmp rdi, qword [rbp + 0x98]
je 0x14004e43f
lea rdx, [rbp + 0xd8]
mov rcx, rdi
call fcn.140020f40
add qword [rbp + 0x90], 0x20
jmp 0x14004e455
lea r8, [rbp + 0xd8]
mov rdx, rdi
lea rcx, [rbp + 0x88]
call fcn.140035b80
mov rcx, qword [r13 + 0x58]
sub rcx, qword [r13 + 0x50]
movabs rax, 0x6666666666666667
imul rcx
sar rdx, 4
mov rax, rdx
shr rax, 0x3f
add rdx, rax
movsxd rax, r12d
lea rcx, [0x14012c770]
cmp rax, rdx
lea rax, [0x14012b18d]
cmove rcx, rax
lea r8, [rbp + 0xd8]
cmp qword [rbp + 0xf0], 0xf
cmova r8, qword [rbp + 0xd8]
mov qword [rsp + 0x20], rcx
mov r9d, dword [rsi + 0x20]
lea rdx, str._t__80s___d_s
lea rcx, [rbp + 0x190]
call fcn.140048150
lea rdx, [rbp + 0x190]
mov rcx, r15
call fcn.140026940
mov rcx, rax
call fcn.140026bf0
nop
lea rcx, [rbp + 0xd8]
call fcn.140024630
add rsi, 0x28
mov qword [rsp + 0x48], rsi
cmp rsi, r14
jne 0x14004e2c3
lea rdx, [0x140131a48]
mov rcx, r15
call fcn.140026940
nop
lea rcx, [rbp + 0x88]
call fcn.140023960
mov rbx, qword [rsp + 0x40]
add rbx, 0x98
mov qword [rsp + 0x40], rbx
add r13, 0x98
cmp rbx, qword [rsp + 0x58]
mov r14d, 0
jne 0x14004dfe0
mov rsi, qword [rsp + 0x50]
test byte [rbp + 0x600], 8
je 0x14004e6e3
xorps xmm1, xmm1
movdqu xmmword [rbp + 0xa0], xmm1
xor edx, edx
mov qword [rbp + 0xb0], rdx
movdqu xmmword [rbp + 0x88], xmm1
xor r8d, r8d
mov qword [rbp + 0x98], r8
mov rdi, qword [rsi + 0x40]
mov rbx, qword [rsi + 0x38]
cmp rbx, rdi
je 0x14004e614
nop word [rax + rax]
mov rax, qword [rbx]
mov qword [rsp + 0x40], rax
cmp byte [rax + 0xc], 0
je 0x14004e5c7
mov rcx, qword [rbp + 0x90]
cmp rcx, r8
je 0x14004e5b7
mov qword [rcx], rax
add qword [rbp + 0x90], 8
jmp 0x14004e5f8
mov rdx, qword [rbp + 0x90]
lea rcx, [rbp + 0x88]
jmp 0x14004e5ee
mov rcx, qword [rbp + 0xa8]
cmp rcx, rdx
je 0x14004e5e0
mov qword [rcx], rax
add qword [rbp + 0xa8], 8
jmp 0x14004e5f8
mov rdx, qword [rbp + 0xa8]
lea rcx, [rbp + 0xa0]
lea r8, [rsp + 0x40]
call fcn.140034fa0
add rbx, 8
cmp rbx, rdi
je 0x14004e614
mov rdx, qword [rbp + 0xb0]
mov r8, qword [rbp + 0x98]
jmp 0x14004e590
lea rdx, [rbp + 0xa0]
lea rcx, [rbp + 0xf8]
call fcn.14004fd80
lea rdx, [rbp + 0x88]
lea rcx, [rbp + 0xf8]
call fcn.14004fd80
nop
mov rcx, qword [rbp + 0x88]
test rcx, rcx
je 0x14004e69d
mov rax, qword [rbp + 0x98]
sub rax, rcx
sar rax, 3
lea rdx, [rax*8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14004e682
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14004e803
call fcn.1400e0560
xorps xmm0, xmm0
movdqu xmmword [rbp + 0x88], xmm0
mov qword [rbp + 0x98], 0
mov rcx, qword [rbp + 0xa0]
test rcx, rcx
je 0x14004e6f3
mov rdx, qword [rbp + 0xb0]
sub rdx, rcx
and rdx, 0xfffffffffffffff8
mov rax, rcx
cmp rdx, 0x1000
jb 0x14004e6dc
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14004e7fd
call fcn.1400e0560
jmp 0x14004e6f3
lea rdx, [rsi + 0x38]
lea rcx, [rbp + 0xf8]
call fcn.14004fd80
mov eax, dword [rbp + 0x600]
test al, 0x10
je 0x14004e7c9
mov r14, qword [rsi + 0x40]
mov rbx, qword [rsi + 0x38]
cmp rbx, r14
je 0x14004e7c9
nop dword [rax]
nop word [rax + rax]
xor edx, edx
mov r8d, 0x400
lea rcx, [rbp + 0x190]
call fcn.140113320
mov r8, qword [rbx]
mov edi, dword [r8 + 0xa4]
mov rax, qword [r8 + 0x70]
cmp rax, qword [r8 + 0x78]
jne 0x14004e74c
xor esi, esi
jmp 0x14004e755
mov rax, qword [rax]
mov esi, dword [rax + 0xa4]
add r8, 0x38
lea rdx, [rbp - 0x80]
call fcn.14004e810
cmp qword [rax + 0x18], 0xf
jbe 0x14004e76c
mov rax, qword [rax]
mov dword [rsp + 0x30], edi
mov dword [rsp + 0x28], esi
mov dword [rsp + 0x20], edi
mov r9d, edi
mov r8, rax
lea rdx, str.static_assert_sizeof__s___0x_04X_______d_bytes__0x_06X___0x_06X_
lea rcx, [rbp + 0x190]
call fcn.140052a00
lea rcx, [rbp - 0x80]
call fcn.140024630
lea rdx, [rbp + 0x190]
mov rcx, r15
call fcn.140026940
mov rcx, rax
call fcn.140026bf0
add rbx, 8
cmp rbx, r14
jne 0x14004e720
mov eax, dword [rbp + 0x600]
mov rsi, qword [rsp + 0x50]
test al, 0x20
je 0x14004e7da
lea rdx, [rsi + 0x38]
lea rcx, [rbp - 0x60]
call fcn.14004f5e0
mov rcx, qword [rbp + 0x590]
xor rcx, rsp
call fcn.1400e0540
add rsp, 0x6a8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
call fcn.1400f0e0c
nop
call fcn.1400f0e0c
nop
int3