Function at 0x14004d900
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 - 0x528]
sub rsp, 0x628
mov rax, qword [0x14019e230]
xor rax, rsp
mov qword [rbp + 0x510], rax
mov rdi, r9
mov rsi, rdx
mov r14, rcx
mov qword [rsp + 0x48], rcx
lea rdx, str.pragma_once_n
call fcn.140028100
mov rbx, qword [rsi + 0x28]
mov rbx, qword [rbx]
movabs r12, 0xcbf29ce484222325
xor r13d, r13d
movabs r15, 0x100000001b3
test byte [rbp + 0x580], 4
je 0x14004dabe
cmp byte [rbx + 0x19], r13b
jne 0x14004db59
mov rdx, qword [rbx + 0x20]
lea rcx, [rbp - 0x28]
call fcn.1400215f0
nop
lea rdx, [rbp - 0x28]
cmp qword [rbp - 0x10], 0x10
cmovae rdx, qword [rbp - 0x28]
mov r9, r12
mov rcx, r13
mov r8, qword [rbp - 0x18]
test r8, r8
je 0x14004d9c3
nop dword [rax + rax]
movzx eax, byte [rcx + rdx]
xor r9, rax
imul r9, r15
inc rcx
cmp rcx, r8
jb 0x14004d9b0
lea r8, [rbp - 0x28]
lea rdx, [rsp + 0x58]
mov rcx, rdi
call fcn.1400357f0
cmp qword [rax + 8], 0
je 0x14004da13
lea r8, [rbp - 0x28]
lea rdx, [rsp + 0x68]
mov rcx, rdi
call fcn.140029380
mov rdx, qword [rax]
add rdx, 0x30
lea rax, [rbp - 0x28]
cmp rax, rdx
je 0x14004da13
mov r8, qword [rdx + 0x10]
cmp qword [rdx + 0x18], 0x10
jb 0x14004da0a
mov rdx, qword [rdx]
lea rcx, [rbp - 0x28]
call fcn.14000daa0
lea rdx, str.include__
mov rcx, r14
call fcn.140028100
lea rdx, [rbp - 0x28]
cmp qword [rbp - 0x10], 0x10
cmovae rdx, qword [rbp - 0x28]
mov r8, qword [rbp - 0x18]
mov rcx, rax
call fcn.140037180
lea rdx, [0x140131f1c]
mov rcx, rax
call fcn.140028100
mov rcx, rax
call fcn.140028370
nop
lea rcx, [rbp - 0x28]
call fcn.140024d90
mov rax, qword [rbx + 0x10]
cmp byte [rax + 0x19], 0
je 0x14004da89
mov rax, qword [rbx + 8]
cmp byte [rax + 0x19], 0
jne 0x14004da84
cmp rbx, qword [rax + 0x10]
jne 0x14004da84
mov rbx, rax
mov rax, qword [rax + 8]
cmp byte [rax + 0x19], 0
je 0x14004da71
mov rbx, rax
jmp 0x14004daaf
mov rbx, rax
mov rcx, qword [rax]
cmp byte [rcx + 0x19], 0
jne 0x14004daaf
nop word [rax + rax]
mov rbx, rcx
mov rax, qword [rcx]
mov rcx, rax
cmp byte [rax + 0x19], 0
je 0x14004daa0
cmp byte [rbx + 0x19], 0
je 0x14004d980
jmp 0x14004db59
cmp byte [rbx + 0x19], r13b
jne 0x14004db59
nop dword [rax + rax]
lea rdx, str.____dependency:
mov rcx, r14
call fcn.140028100
mov rdx, qword [rbx + 0x20]
mov r8, qword [rdx + 0x10]
cmp qword [rdx + 0x18], 0x10
jb 0x14004daf1
mov rdx, qword [rdx]
mov rcx, rax
call fcn.140037180
mov rcx, rax
call fcn.140028370
mov rax, qword [rbx + 0x10]
cmp byte [rax + 0x19], r13b
je 0x14004db2d
mov rax, qword [rbx + 8]
cmp byte [rax + 0x19], r13b
jne 0x14004db28
cmp rbx, qword [rax + 0x10]
jne 0x14004db28
mov rbx, rax
mov rax, qword [rax + 8]
cmp byte [rax + 0x19], r13b
je 0x14004db15
mov rbx, rax
jmp 0x14004db4f
mov rbx, rax
mov rcx, qword [rax]
cmp byte [rcx + 0x19], r13b
jne 0x14004db4f
nop dword [rax]
mov rbx, rcx
mov rax, qword [rcx]
mov rcx, rax
cmp byte [rax + 0x19], r13b
je 0x14004db40
cmp byte [rbx + 0x19], r13b
je 0x14004dad0
lea rdx, [0x140131910]
mov rcx, r14
call fcn.140028100
lea rdx, str.pragma_pack_push__0x1__n
mov rcx, r14
call fcn.140028100
mov rcx, rax
call fcn.140028370
lea rax, [rbp - 0x60]
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x60], r14
lea rax, [rbp - 0x60]
mov qword [rbp - 0x28], rax
lea rax, [rbp - 0x5f]
mov qword [rbp - 0x20], rax
mov qword [rbp - 0x18], r14
lea rax, [rbp - 0x60]
mov qword [rbp + 0x70], rax
mov qword [rbp + 0x78], r14
lea rax, [rbp - 0x5f]
mov qword [rbp + 0x80], rax
lea rax, [rbp + 0x580]
mov qword [rbp + 0x88], rax
lea rax, [rbp - 0x5e]
mov qword [rbp + 0x90], rax
lea r12, [rsi + 0x38]
mov qword [rsp + 0x50], r12
test byte [rbp + 0x580], 2
je 0x14004dbff
mov rdx, r12
lea rcx, [rsp + 0x58]
call fcn.14004e890
lea rdx, [0x140131910]
mov rcx, r14
call fcn.140028100
xorps xmm0, xmm0
movups xmmword [rbp + 0x30], xmm0
movups xmmword [rbp + 0x40], xmm0
movups xmmword [rbp + 0x50], xmm0
movups xmmword [rbp + 0x60], xmm0
movss dword [rbp + 0x30], xmm0
mov qword [rbp + 0x38], r13
mov qword [rbp + 0x40], r13
mov ecx, 0x30
call fcn.1400dde60
mov qword [rax], rax
mov qword [rax + 8], rax
mov qword [rbp + 0x38], rax
mov qword [rbp + 0x48], r13
xorps xmm0, xmm0
movdqa xmmword [rbp + 0x50], xmm0
mov qword [rbp + 0x60], 7
mov qword [rbp + 0x68], 8
movss xmm0, dword [0x14017e594]
movss dword [rbp + 0x30], xmm0
mov r8, rax
mov edx, 0x10
lea rcx, [rbp + 0x48]
call fcn.140026290
nop
mov rdi, qword [rsi + 0x80]
mov qword [rbp - 0x68], rdi
mov rax, qword [rsi + 0x88]
mov qword [rsp + 0x58], rax
cmp rdi, rax
je 0x14004e01b
lea r13, [rdi + 0x48]
nop dword [rax]
nop word [rax + rax]
mov r8, qword [r13]
lea rbx, [r13 - 0x10]
mov rdx, rbx
cmp qword [r13 + 8], 0x10
jb 0x14004dcb5
mov rdx, qword [rbx]
xor ecx, ecx
movabs r9, 0xcbf29ce484222325
test r8, r8
je 0x14004dce3
nop word [rax + rax]
movzx eax, byte [rcx + rdx]
xor r9, rax
imul r9, r15
inc rcx
cmp rcx, r8
jb 0x14004dcd0
mov r8, rbx
lea rdx, [rbp - 0x40]
lea rcx, [rbp + 0x30]
call fcn.1400357f0
cmp qword [rax + 8], 0
jne 0x14004dff6
mov r8, rbx
lea rdx, [rbp - 0x58]
lea rcx, [rbp + 0x30]
call fcn.140028dd0
lea rdx, str.____Enum
mov rcx, r14
call fcn.140028100
lea rdx, [r13 - 0x30]
cmp qword [r13 - 0x18], 0x10
jb 0x14004dd2b
mov rdx, qword [rdx]
mov r8, qword [r13 - 0x20]
mov rcx, rax
call fcn.140037180
mov rcx, rax
call fcn.140028370
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp + 0xa0], xmm0
movups xmmword [rbp + 0xb0], xmm0
movups xmmword [rbp + 0xc0], xmm0
movups xmmword [rbp + 0xd0], xmm0
movups xmmword [rbp + 0xe0], xmm0
movups xmmword [rbp + 0xf0], xmm0
mov dword [rbp + 0x100], eax
mov r8d, dword [r13 + 0x30]
mov r9d, r8d
lea rdx, str.Size:_0x_02d___d_bytes_
lea rcx, [rbp + 0xa0]
call fcn.1400495b0
lea rdx, [0x140131990]
mov rcx, r14
call fcn.140028100
mov rcx, rax
lea rdx, [rbp + 0xa0]
call fcn.140028100
mov rcx, rax
call fcn.140028370
lea rdx, str.enum_class
mov rcx, r14
call fcn.140028100
cmp qword [r13 + 8], 0x10
jb 0x14004ddcd
mov rbx, qword [rbx]
mov r8, qword [r13]
mov rdx, rbx
mov rcx, rax
call fcn.140037180
lea rdx, [0x140131bb0]
mov rcx, rax
call fcn.140028100
lea rdx, [r13 + 0x10]
cmp qword [r13 + 0x28], 0x10
jb 0x14004ddf9
mov rdx, qword [rdx]
mov r8, qword [r13 + 0x20]
mov rcx, rax
call fcn.140037180
mov rcx, rax
call fcn.140028370
lea rdx, [0x14012c2e8]
mov rcx, r14
call fcn.140028100
mov rcx, rax
call fcn.140028370
xor r12d, r12d
xor eax, eax
xorps xmm1, xmm1
movdqu xmmword [rbp - 8], xmm1
mov qword [rbp + 8], rax
mov rsi, qword [r13 + 0x38]
mov qword [rsp + 0x40], rsi
mov r15, qword [r13 + 0x40]
mov qword [rsp + 0x68], r15
cmp rsi, r15
je 0x14004dfd3
inc r12d
xor r9d, r9d
mov r8, rsi
lea rdx, [rbp + 0x10]
call fcn.14004e2d0
nop
mov rbx, qword [rbp - 8]
mov rdi, qword [rbp]
cmp rbx, rdi
je 0x14004df0e
cmp qword [rbp + 0x28], 0x10
setae r14b
mov rsi, qword [rbp + 0x20]
mov r15, qword [rbp + 0x10]
nop word [rax + rax]
lea rdx, [rbp + 0x10]
test r14b, r14b
cmovne rdx, r15
mov r8, qword [rbx + 0x10]
mov rcx, rbx
cmp qword [rbx + 0x18], 0x10
jb 0x14004deac
mov rcx, qword [rbx]
cmp r8, rsi
jne 0x14004deba
call fcn.1400e08a0
test eax, eax
je 0x14004dec3
add rbx, 0x20
cmp rbx, rdi
jne 0x14004de90
mov rsi, qword [rsp + 0x40]
mov r14, qword [rsp + 0x48]
mov r15, qword [rsp + 0x68]
cmp rbx, rdi
je 0x14004df0e
mov edx, r12d
lea rcx, [rsp + 0x78]
call fcn.140002fc0
nop
mov r8, qword [rax + 0x10]
cmp qword [rax + 0x18], 0x10
jb 0x14004def3
mov rax, qword [rax]
mov rdx, rax
lea rcx, [rbp + 0x10]
call fcn.140024f60
nop
lea rcx, [rsp + 0x78]
call fcn.140024d90
mov rdi, qword [rbp]
cmp rdi, qword [rbp + 8]
je 0x14004df27
lea rdx, [rbp + 0x10]
mov rcx, rdi
call fcn.1400215f0
add qword [rbp], 0x20
jmp 0x14004df37
lea r8, [rbp + 0x10]
mov rdx, rdi
lea rcx, [rbp - 8]
call fcn.14002ce20
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, [0x14012c3b8]
cmp rax, rdx
lea rax, [0x14012aad3]
cmove rcx, rax
lea r8, [rbp + 0x10]
cmp qword [rbp + 0x28], 0x10
cmovae r8, qword [rbp + 0x10]
mov qword [rsp + 0x20], rcx
mov r9d, dword [rsi + 0x20]
lea rdx, str._t__80s___d_s
lea rcx, [rbp + 0x110]
call fcn.140049760
lea rdx, [rbp + 0x110]
mov rcx, r14
call fcn.140028100
mov rcx, rax
call fcn.140028370
nop
lea rcx, [rbp + 0x10]
call fcn.140024d90
add rsi, 0x28
mov qword [rsp + 0x40], rsi
cmp rsi, r15
jne 0x14004de50
mov rdi, qword [rbp - 0x68]
lea rdx, [0x140131b70]
mov rcx, r14
call fcn.140028100
nop
lea rcx, [rbp - 8]
call fcn.140023f90
movabs r15, 0x100000001b3
add rdi, 0x98
mov qword [rbp - 0x68], rdi
add r13, 0x98
cmp rdi, qword [rsp + 0x58]
jne 0x14004dca0
mov r12, qword [rsp + 0x50]
xor r13d, r13d
test byte [rbp + 0x580], 8
je 0x14004e167
xorps xmm1, xmm1
movdqu xmmword [rbp - 0x40], xmm1
mov rdx, r13
mov qword [rbp - 0x30], rdx
movdqu xmmword [rbp - 0x58], xmm1
mov r8, r13
mov qword [rbp - 0x48], r13
mov rdi, qword [r12 + 8]
mov rbx, qword [r12]
cmp rbx, rdi
je 0x14004e0b2
mov rax, qword [rbx]
mov qword [rbp - 0x68], rax
cmp byte [rax + 0xc], 0
je 0x14004e07b
mov rcx, qword [rbp - 0x50]
cmp rcx, r8
je 0x14004e071
mov qword [rcx], rax
add qword [rbp - 0x50], 8
jmp 0x14004e09f
mov rdx, qword [rbp - 0x50]
lea rcx, [rbp - 0x58]
jmp 0x14004e096
mov rcx, qword [rbp - 0x38]
cmp rcx, rdx
je 0x14004e08e
mov qword [rcx], rax
add qword [rbp - 0x38], 8
jmp 0x14004e09f
mov rdx, qword [rbp - 0x38]
lea rcx, [rbp - 0x40]
lea r8, [rbp - 0x68]
call fcn.14002c460
add rbx, 8
cmp rbx, rdi
je 0x14004e0b2
mov rdx, qword [rbp - 0x30]
mov r8, qword [rbp - 0x48]
jmp 0x14004e051
lea rdx, [rbp - 0x40]
lea rcx, [rbp + 0x70]
call fcn.14004f690
lea rdx, [rbp - 0x58]
lea rcx, [rbp + 0x70]
call fcn.14004f690
nop
mov rcx, qword [rbp - 0x58]
test rcx, rcx
je 0x14004e11f
mov rax, qword [rbp - 0x48]
sub rax, rcx
sar rax, 3
lea rdx, [rax*8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14004e10e
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14004e2c7
call fcn.1400ddbc0
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x58], xmm0
mov qword [rbp - 0x48], r13
mov rcx, qword [rbp - 0x40]
test rcx, rcx
je 0x14004e173
mov rax, qword [rbp - 0x30]
sub rax, rcx
sar rax, 3
lea rdx, [rax*8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14004e160
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14004e2c1
call fcn.1400ddbc0
jmp 0x14004e173
mov rdx, r12
lea rcx, [rbp + 0x70]
call fcn.14004f690
lea rdx, str.pragma_pack_pop__n_n
mov rcx, r14
call fcn.140028100
mov rcx, rax
call fcn.140028370
mov eax, dword [rbp + 0x580]
test al, 0x10
je 0x14004e284
mov r15, qword [r12 + 8]
mov rdi, qword [r12]
cmp rdi, r15
je 0x14004e284
mov r13d, 1
mov r12, qword [rsp + 0x48]
nop word [rax + rax]
xor edx, edx
mov r8d, 0x400
lea rcx, [rbp + 0x110]
call fcn.1400e0680
mov r8, qword [rdi]
movsxd rsi, dword [r8 + 0xa4]
mov rbx, rsi
cmp dword [r8 + 0xb0], r13d
jne 0x14004e1f0
test esi, esi
cmove rbx, r13
mov rax, qword [r8 + 0x70]
cmp rax, qword [r8 + 0x78]
jne 0x14004e1ff
xor r14d, r14d
jmp 0x14004e209
mov rax, qword [rax]
mov r14d, dword [rax + 0xa4]
add r8, 0x38
xor r9d, r9d
lea rdx, [rsp + 0x78]
call fcn.14004e2d0
cmp qword [rax + 0x18], 0x10
jb 0x14004e224
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 + 0x110]
call fcn.140051970
lea rcx, [rsp + 0x78]
call fcn.140024d90
lea rdx, [rbp + 0x110]
mov rcx, r12
call fcn.140028100
mov rcx, rax
call fcn.140028370
add rdi, 8
cmp rdi, r15
jne 0x14004e1c0
mov eax, dword [rbp + 0x580]
mov r12, qword [rsp + 0x50]
test al, 0x20
je 0x14004e295
mov rdx, r12
lea rcx, [rbp - 0x28]
call fcn.14004f2a0
nop
lea rcx, [rbp + 0x30]
call fcn.14001aa00
mov rcx, qword [rbp + 0x510]
xor rcx, rsp
call fcn.1400ddba0
add rsp, 0x628
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
call fcn.1400ed100
nop
call fcn.1400ed100
int3