Function at 0x14004d550
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 - 0x548]
sub rsp, 0x648
mov rax, qword [0x1401a2250]
xor rax, rsp
mov qword [rbp + 0x530], rax
mov rdi, r9
mov rsi, rdx
mov r14, rcx
mov qword [rsp + 0x50], rcx
lea rdx, str.pragma_once_n
call fcn.140028070
mov rbx, qword [rsi + 0x28]
mov rbx, qword [rbx]
movabs r12, 0xcbf29ce484222325
movabs r15, 0x100000001b3
test byte [rbp + 0x5a0], 4
je 0x14004d70e
cmp byte [rbx + 0x19], 0
jne 0x14004d7a9
nop dword [rax]
mov rdx, qword [rbx + 0x20]
lea rcx, [rbp + 0x18]
call fcn.140021ed0
nop
lea rdx, [rbp + 0x18]
cmp qword [rbp + 0x30], 0x10
cmovae rdx, qword [rbp + 0x18]
mov r9, r12
xor ecx, ecx
mov r8, qword [rbp + 0x28]
test r8, r8
je 0x14004d613
nop word [rax + rax]
movzx eax, byte [rcx + rdx]
xor r9, rax
imul r9, r15
inc rcx
cmp rcx, r8
jb 0x14004d600
lea r8, [rbp + 0x18]
lea rdx, [rsp + 0x60]
mov rcx, rdi
call fcn.1400322e0
cmp qword [rax + 8], 0
je 0x14004d663
lea r8, [rbp + 0x18]
lea rdx, [rsp + 0x70]
mov rcx, rdi
call fcn.140029410
mov rdx, qword [rax]
add rdx, 0x30
lea rax, [rbp + 0x18]
cmp rax, rdx
je 0x14004d663
mov r8, qword [rdx + 0x10]
cmp qword [rdx + 0x18], 0x10
jb 0x14004d65a
mov rdx, qword [rdx]
lea rcx, [rbp + 0x18]
call fcn.140025600
lea rdx, str.include__
mov rcx, r14
call fcn.140028070
lea rdx, [rbp + 0x18]
cmp qword [rbp + 0x30], 0x10
cmovae rdx, qword [rbp + 0x18]
mov r8, qword [rbp + 0x28]
mov rcx, rax
call fcn.140033c50
lea rdx, [0x1401344ac]
mov rcx, rax
call fcn.140028070
mov rcx, rax
call fcn.140028330
nop
lea rcx, [rbp + 0x18]
call fcn.1400255a0
mov rax, qword [rbx + 0x10]
cmp byte [rax + 0x19], 0
je 0x14004d6d9
mov rax, qword [rbx + 8]
cmp byte [rax + 0x19], 0
jne 0x14004d6d4
cmp rbx, qword [rax + 0x10]
jne 0x14004d6d4
mov rbx, rax
mov rax, qword [rax + 8]
cmp byte [rax + 0x19], 0
je 0x14004d6c1
mov rbx, rax
jmp 0x14004d6ff
mov rbx, rax
mov rcx, qword [rax]
cmp byte [rcx + 0x19], 0
jne 0x14004d6ff
nop word [rax + rax]
mov rbx, rcx
mov rax, qword [rcx]
mov rcx, rax
cmp byte [rax + 0x19], 0
je 0x14004d6f0
cmp byte [rbx + 0x19], 0
je 0x14004d5d0
jmp 0x14004d7a9
cmp byte [rbx + 0x19], 0
jne 0x14004d7a9
nop dword [rax + rax]
lea rdx, str.____dependency:
mov rcx, r14
call fcn.140028070
mov rdx, qword [rbx + 0x20]
mov r8, qword [rdx + 0x10]
cmp qword [rdx + 0x18], 0x10
jb 0x14004d741
mov rdx, qword [rdx]
mov rcx, rax
call fcn.140033c50
mov rcx, rax
call fcn.140028330
mov rax, qword [rbx + 0x10]
cmp byte [rax + 0x19], 0
je 0x14004d77d
mov rax, qword [rbx + 8]
cmp byte [rax + 0x19], 0
jne 0x14004d778
cmp rbx, qword [rax + 0x10]
jne 0x14004d778
mov rbx, rax
mov rax, qword [rax + 8]
cmp byte [rax + 0x19], 0
je 0x14004d765
mov rbx, rax
jmp 0x14004d79f
mov rbx, rax
mov rcx, qword [rax]
cmp byte [rcx + 0x19], 0
jne 0x14004d79f
nop dword [rax]
mov rbx, rcx
mov rax, qword [rcx]
mov rcx, rax
cmp byte [rax + 0x19], 0
je 0x14004d790
cmp byte [rbx + 0x19], 0
je 0x14004d720
lea rdx, [0x140133ea0]
mov rcx, r14
call fcn.140028070
lea rdx, str.pragma_pack_push__0x1__n
mov rcx, r14
call fcn.140028070
mov rcx, rax
call fcn.140028330
lea rax, [rbp - 0x38]
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], r14
mov byte [rbp - 0x37], 0
mov byte [rbp - 0x36], 0
lea rax, [rbp - 0x38]
mov qword [rbp - 0x60], rax
lea rax, [rbp - 0x37]
mov qword [rbp - 0x58], rax
mov qword [rbp - 0x50], r14
lea rax, [rbp - 0x38]
mov qword [rbp + 0x58], rax
mov qword [rbp + 0x60], r14
lea rax, [rbp - 0x37]
mov qword [rbp + 0x68], rax
lea rax, [rbp + 0x5a0]
mov qword [rbp + 0x70], rax
lea rax, [rbp - 0x36]
mov qword [rbp + 0x78], rax
lea r12, [rsi + 0x38]
mov qword [rsp + 0x70], r12
test byte [rbp + 0x5a0], 2
je 0x14004d84e
mov rdx, r12
lea rcx, [rsp + 0x60]
call fcn.14004e460
lea rdx, [0x140133ea0]
mov rcx, r14
call fcn.140028070
xorps xmm0, xmm0
movups xmmword [rbp + 0x80], xmm0
movups xmmword [rbp + 0x90], xmm0
movups xmmword [rbp + 0xa0], xmm0
movups xmmword [rbp + 0xb0], xmm0
mov dword [rsp + 0x40], 0
lea rdx, [rsp + 0x40]
lea rcx, [rbp + 0x80]
call fcn.140023ea0
nop
mov rdi, qword [rsi + 0x80]
mov qword [rsp + 0x48], rdi
mov rax, qword [rsi + 0x88]
mov qword [rsp + 0x60], rax
cmp rdi, rax
je 0x14004dcaf
lea r13, [rdi + 0x48]
nop dword [rax]
mov r8, qword [r13]
lea rbx, [r13 - 0x10]
mov rdx, rbx
cmp qword [r13 + 8], 0x10
jb 0x14004d8c5
mov rdx, qword [rbx]
xor ecx, ecx
movabs r9, 0xcbf29ce484222325
test r8, r8
je 0x14004d8f3
nop word [rax + rax]
movzx eax, byte [rcx + rdx]
xor r9, rax
imul r9, r15
inc rcx
cmp rcx, r8
jb 0x14004d8e0
mov r8, rbx
lea rdx, [rbp - 0x48]
lea rcx, [rbp + 0x80]
call fcn.1400322e0
cmp qword [rax + 8], 0
jne 0x14004dc8c
mov r8, rbx
lea rdx, [rbp - 0x18]
lea rcx, [rbp + 0x80]
call fcn.140028e50
lea rdx, str.____Enum
mov rcx, r14
call fcn.140028070
lea rdx, [r13 - 0x30]
cmp qword [r13 - 0x18], 0x10
jb 0x14004d941
mov rdx, qword [rdx]
mov r8, qword [r13 - 0x20]
mov rcx, rax
call fcn.140033c50
mov rcx, rax
call fcn.140028330
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp + 0xc0], xmm0
movups xmmword [rbp + 0xd0], xmm0
movups xmmword [rbp + 0xe0], xmm0
movups xmmword [rbp + 0xf0], xmm0
movups xmmword [rbp + 0x100], xmm0
movups xmmword [rbp + 0x110], xmm0
mov dword [rbp + 0x120], eax
mov r8d, dword [r13 + 0x30]
mov r9d, r8d
lea rdx, str.Size:_0x_02d___d_bytes_
lea rcx, [rbp + 0xc0]
call fcn.140049040
lea rdx, [0x140133f20]
mov rcx, r14
call fcn.140028070
mov rcx, rax
lea rdx, [rbp + 0xc0]
call fcn.140028070
mov rcx, rax
call fcn.140028330
lea rdx, str.enum_class
mov rcx, r14
call fcn.140028070
cmp qword [r13 + 8], 0x10
jb 0x14004d9e3
mov rbx, qword [rbx]
mov r8, qword [r13]
mov rdx, rbx
mov rcx, rax
call fcn.140033c50
lea rdx, [0x140134140]
mov rcx, rax
call fcn.140028070
lea rdx, [r13 + 0x10]
cmp qword [r13 + 0x28], 0x10
jb 0x14004da0f
mov rdx, qword [rdx]
mov r8, qword [r13 + 0x20]
mov rcx, rax
call fcn.140033c50
mov rcx, rax
call fcn.140028330
lea rdx, [0x14012e860]
mov rcx, r14
call fcn.140028070
mov rcx, rax
call fcn.140028330
xor r12d, r12d
xor eax, eax
xorps xmm1, xmm1
movdqu xmmword [rbp], xmm1
mov qword [rbp + 0x10], rax
mov rsi, qword [r13 + 0x38]
mov qword [rsp + 0x40], rsi
mov r15, qword [r13 + 0x40]
mov qword [rsp + 0x58], r15
cmp rsi, r15
je 0x14004dc69
nop word [rax + rax]
inc r12d
xor r9d, r9d
mov r8, rsi
lea rdx, [rbp + 0x38]
call fcn.14004df70
nop
mov rbx, qword [rbp]
mov rdi, qword [rbp + 8]
cmp rbx, rdi
je 0x14004dba3
mov r14, qword [rbp + 0x50]
mov rsi, qword [rbp + 0x48]
mov r15, qword [rbp + 0x38]
lea rdx, [rbp + 0x38]
cmp r14, 0x10
cmovae rdx, r15
mov r8, qword [rbx + 0x10]
mov rcx, rbx
cmp qword [rbx + 0x18], 0x10
jb 0x14004dabd
mov rcx, qword [rbx]
cmp r8, rsi
jne 0x14004dacb
call fcn.1400e31b0
test eax, eax
je 0x14004dada
add rbx, 0x20
cmp rbx, rdi
je 0x14004db94
jmp 0x14004daa0
cmp rbx, rdi
je 0x14004db94
lea r9, [rbp - 0x1b]
mov r8d, r12d
test r12d, r12d
jns 0x14004db30
neg r8d
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 0x14004daf2
dec r9
mov byte [r9], 0x2d
jmp 0x14004db5a
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 0x14004db30
lea r8, [rbp - 0x1b]
mov rdx, r9
lea rcx, [rbp - 0x80]
call fcn.1400313c0
nop
lea rdx, [rbp - 0x80]
cmp qword [rbp - 0x68], 0x10
cmovae rdx, qword [rbp - 0x80]
mov r8, qword [rbp - 0x70]
lea rcx, [rbp + 0x38]
call fcn.140025760
nop
lea rcx, [rbp - 0x80]
call fcn.1400255a0
mov rdi, qword [rbp + 8]
mov rsi, qword [rsp + 0x40]
mov r14, qword [rsp + 0x50]
mov r15, qword [rsp + 0x58]
cmp rdi, qword [rbp + 0x10]
je 0x14004dbbc
lea rdx, [rbp + 0x38]
mov rcx, rdi
call fcn.140021ed0
add qword [rbp + 8], 0x20
jmp 0x14004dbcc
lea r8, [rbp + 0x38]
mov rdx, rdi
lea rcx, [rbp]
call fcn.1400365f0
mov rcx, qword [r13 + 0x40]
sub rcx, qword [r13 + 0x38]
movabs rax, 0x6666666666666667
imul rcx
sar rdx, 4
mov rax, rdx
shr rax, 0x3f
add rdx, rax
movsxd rax, r12d
lea rcx, [0x14012e930]
cmp rax, rdx
lea rax, [0x14012d112]
cmove rcx, rax
lea r8, [rbp + 0x38]
cmp qword [rbp + 0x50], 0x10
cmovae r8, qword [rbp + 0x38]
mov qword [rsp + 0x20], rcx
mov r9d, dword [rsi + 0x20]
lea rdx, str._t__80s___d_s
lea rcx, [rbp + 0x130]
call fcn.1400491c0
lea rdx, [rbp + 0x130]
mov rcx, r14
call fcn.140028070
mov rcx, rax
call fcn.140028330
nop
lea rcx, [rbp + 0x38]
call fcn.1400255a0
add rsi, 0x28
mov qword [rsp + 0x40], rsi
cmp rsi, r15
jne 0x14004da70
mov rdi, qword [rsp + 0x48]
lea rdx, [0x140134100]
mov rcx, r14
call fcn.140028070
nop
lea rcx, [rbp]
call fcn.140024870
movabs r15, 0x100000001b3
add rdi, 0x98
mov qword [rsp + 0x48], rdi
add r13, 0x98
cmp rdi, qword [rsp + 0x60]
jne 0x14004d8b0
mov r12, qword [rsp + 0x70]
test byte [rbp + 0x5a0], 8
je 0x14004de0c
xorps xmm1, xmm1
movdqu xmmword [rbp - 0x18], xmm1
xor edx, edx
mov qword [rbp - 8], rdx
movdqu xmmword [rbp - 0x30], xmm1
xor r8d, r8d
mov qword [rbp - 0x20], r8
mov rdi, qword [r12 + 8]
mov rbx, qword [r12]
cmp rbx, rdi
je 0x14004dd53
nop dword [rax]
nop dword [rax + rax]
mov rax, qword [rbx]
mov qword [rsp + 0x48], rax
cmp byte [rax + 0xc], 0
je 0x14004dd1b
mov rcx, qword [rbp - 0x28]
cmp rcx, r8
je 0x14004dd11
mov qword [rcx], rax
add qword [rbp - 0x28], 8
jmp 0x14004dd40
mov rdx, qword [rbp - 0x28]
lea rcx, [rbp - 0x30]
jmp 0x14004dd36
mov rcx, qword [rbp - 0x10]
cmp rcx, rdx
je 0x14004dd2e
mov qword [rcx], rax
add qword [rbp - 0x10], 8
jmp 0x14004dd40
mov rdx, qword [rbp - 0x10]
lea rcx, [rbp - 0x18]
lea r8, [rsp + 0x48]
call fcn.140035b30
add rbx, 8
cmp rbx, rdi
je 0x14004dd53
mov rdx, qword [rbp - 8]
mov r8, qword [rbp - 0x20]
jmp 0x14004dcf0
lea rdx, [rbp - 0x18]
lea rcx, [rbp + 0x58]
call fcn.14004f2d0
lea rdx, [rbp - 0x30]
lea rcx, [rbp + 0x58]
call fcn.14004f2d0
nop
mov rcx, qword [rbp - 0x30]
test rcx, rcx
je 0x14004ddc4
mov rax, qword [rbp - 0x20]
sub rax, rcx
sar rax, 3
lea rdx, [rax*8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14004ddaf
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14004df68
call fcn.1400e03f0
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x30], xmm0
mov qword [rbp - 0x20], 0
mov rcx, qword [rbp - 0x18]
test rcx, rcx
je 0x14004de18
mov rax, qword [rbp - 8]
sub rax, rcx
sar rax, 3
lea rdx, [rax*8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14004de05
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14004df62
call fcn.1400e03f0
jmp 0x14004de18
mov rdx, r12
lea rcx, [rbp + 0x58]
call fcn.14004f2d0
lea rdx, str.pragma_pack_pop__n_n
mov rcx, r14
call fcn.140028070
mov rcx, rax
call fcn.140028330
mov eax, dword [rbp + 0x5a0]
test al, 0x10
je 0x14004df22
mov r15, qword [r12 + 8]
mov rdi, qword [r12]
cmp rdi, r15
je 0x14004df22
mov r13d, 1
mov r12, qword [rsp + 0x50]
nop word [rax + rax]
xor edx, edx
mov r8d, 0x400
lea rcx, [rbp + 0x130]
call fcn.1400e2d70
mov r8, qword [rdi]
movsxd rsi, dword [r8 + 0xa4]
mov rbx, rsi
cmp dword [r8 + 0xb0], r13d
jne 0x14004de90
test esi, esi
cmove rbx, r13
mov rax, qword [r8 + 0x70]
cmp rax, qword [r8 + 0x78]
jne 0x14004de9f
xor r14d, r14d
jmp 0x14004dea9
mov rax, qword [rax]
mov r14d, dword [rax + 0xa4]
add r8, 0x38
xor r9d, r9d
lea rdx, [rbp - 0x80]
call fcn.14004df70
cmp qword [rax + 0x18], 0x10
jb 0x14004dec3
mov rax, qword [rax]
mov qword [rsp + 0x30], rbx
mov dword [rsp + 0x28], r14d
mov dword [rsp + 0x20], esi
mov r9, rbx
mov r8, rax
lea rdx, str.static_assert_sizeof__s___0x_04llX_______d_bytes__0x_06X___0x_06llX_
lea rcx, [rbp + 0x130]
call fcn.140051c00
lea rcx, [rbp - 0x80]
call fcn.1400255a0
lea rdx, [rbp + 0x130]
mov rcx, r12
call fcn.140028070
mov rcx, rax
call fcn.140028330
add rdi, 8
cmp rdi, r15
jne 0x14004de60
mov eax, dword [rbp + 0x5a0]
mov r12, qword [rsp + 0x70]
test al, 0x20
je 0x14004df33
mov rdx, r12
lea rcx, [rbp - 0x60]
call fcn.14004ede0
nop
lea rcx, [rbp + 0x80]
call fcn.14001aed0
mov rcx, qword [rbp + 0x530]
xor rcx, rsp
call fcn.1400e03d0
add rsp, 0x648
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
call fcn.1400f1440
nop
call fcn.1400f1440
int3