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

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], rsi
push rbp
push rdi
push r14
lea rbp, [rsp - 0x47]
sub rsp, 0x90
mov rsi, rcx
mov ecx, dword [0x18030367c]
mov rax, qword gs:[0x58]
mov edx, 0x14
mov rax, qword [rax + rcx*8]
mov ebx, 0x811c9dc5
xor r14d, r14d
mov eax, dword [rdx + rax]
cmp dword [0x180303c34], eax
jle 0x180029fd9
lea rcx, [0x180303c34]
call fcn.1801a2c08
cmp dword [0x180303c34], 0xffffffff
jne 0x180029fd9
xorps xmm0, xmm0
movups xmmword [0x180303c40], xmm0
movups xmmword [0x180303c50], xmm0
movups xmmword [0x180303c60], xmm0
movups xmmword [0x180303c70], xmm0
lea rcx, [0x180206338]
mov edx, ebx
lea r8, [0x18020633b]
nop dword [rax]
nop dword [rax + rax]
movsx eax, byte [rcx]
xor eax, edx
imul edx, eax, 0x1000193
inc rcx
cmp rcx, r8
jne 0x180029b10
mov dword [rbp - 0x19], edx
lea rcx, [0x180206358]
mov edx, ebx
lea r8, [0x18020635b]
nop word [rax + rax]
movsx eax, byte [rcx]
xor eax, edx
imul edx, eax, 0x1000193
inc rcx
cmp rcx, r8
jne 0x180029b40
mov dword [rbp - 0x15], edx
lea rcx, str.while
mov edx, ebx
lea r8, [0x18020631d]
nop word [rax + rax]
movsx eax, byte [rcx]
xor eax, edx
imul edx, eax, 0x1000193
inc rcx
cmp rcx, r8
jne 0x180029b70
mov dword [rbp - 0x11], edx
lea rcx, [0x180206314]
mov edx, ebx
lea r8, [0x180206317]
nop word [rax + rax]
movsx eax, byte [rcx]
xor eax, edx
imul edx, eax, 0x1000193
inc rcx
cmp rcx, r8
jne 0x180029ba0
mov dword [rbp - 0xd], edx
lea rcx, [0x180206328]
mov edx, ebx
lea r8, [0x18020632a]
nop word [rax + rax]
movsx eax, byte [rcx]
xor eax, edx
imul edx, eax, 0x1000193
inc rcx
cmp rcx, r8
jne 0x180029bd0
mov dword [rbp - 9], edx
lea rcx, str.else
mov edx, ebx
lea r8, [0x180206330]
nop word [rax + rax]
movsx eax, byte [rcx]
xor eax, edx
imul edx, eax, 0x1000193
inc rcx
cmp rcx, r8
jne 0x180029c00
mov dword [rbp - 5], edx
lea rcx, [0x18020613c]
mov edx, ebx
lea r8, [0x18020613e]
nop word [rax + rax]
movsx eax, byte [rcx]
xor eax, edx
imul edx, eax, 0x1000193
inc rcx
cmp rcx, r8
jne 0x180029c30
mov dword [rbp - 1], edx
lea rcx, [0x180206140]
mov edx, ebx
lea r8, [0x180206142]
nop word [rax + rax]
movsx eax, byte [rcx]
xor eax, edx
imul edx, eax, 0x1000193
inc rcx
cmp rcx, r8
jne 0x180029c60
mov dword [rbp + 3], edx
mov dword [rbp + 7], 0x290c95cb
lea rcx, str.auto
mov edx, ebx
lea r8, [0x180206340]
nop dword [rax]
movsx eax, byte [rcx]
xor eax, edx
imul edx, eax, 0x1000193
inc rcx
cmp rcx, r8
jne 0x180029c90
mov dword [rbp + 0xb], edx
lea rcx, str.return
mov edx, ebx
lea r8, [0x18020630a]
nop word [rax + rax]
movsx eax, byte [rcx]
xor eax, edx
imul edx, eax, 0x1000193
inc rcx
cmp rcx, r8
jne 0x180029cc0
mov dword [rbp + 0xf], edx
lea rcx, str.break
mov edx, ebx
lea r8, [0x180206311]
nop word [rax + rax]
movsx eax, byte [rcx]
xor eax, edx
imul edx, eax, 0x1000193
inc rcx
cmp rcx, r8
jne 0x180029cf0
mov dword [rbp + 0x13], edx
lea rcx, str.true
mov edx, ebx
lea r8, [0x180206004]
nop word [rax + rax]
movsx eax, byte [rcx]
xor eax, edx
imul edx, eax, 0x1000193
inc rcx
cmp rcx, r8
jne 0x180029d20
mov dword [rbp + 0x17], edx
lea rcx, str.false
mov edx, ebx
lea r8, [0x18020600d]
nop word [rax + rax]
movsx eax, byte [rcx]
xor eax, edx
imul edx, eax, 0x1000193
inc rcx
cmp rcx, r8
jne 0x180029d50
mov dword [rbp + 0x1b], edx
lea rcx, str.class
mov edx, ebx
lea r8, [0x180206325]
nop word [rax + rax]
movsx eax, byte [rcx]
xor eax, edx
imul edx, eax, 0x1000193
inc rcx
cmp rcx, r8
jne 0x180029d80
mov dword [rbp + 0x1f], edx
lea rcx, str.attr
mov edx, ebx
lea r8, [0x18020634c]
nop word [rax + rax]
movsx eax, byte [rcx]
xor eax, edx
imul edx, eax, 0x1000193
inc rcx
cmp rcx, r8
jne 0x180029db0
mov dword [rbp + 0x23], edx
lea rcx, [0x180206344]
mov edx, ebx
lea r8, [0x180206347]
nop word [rax + rax]
movsx eax, byte [rcx]
xor eax, edx
imul edx, eax, 0x1000193
inc rcx
cmp rcx, r8
jne 0x180029de0
mov dword [rbp + 0x27], edx
lea rcx, str.global
mov edx, ebx
lea r8, [0x180206356]
nop word [rax + rax]
movsx eax, byte [rcx]
xor eax, edx
imul edx, eax, 0x1000193
inc rcx
cmp rcx, r8
jne 0x180029e10
mov dword [rbp + 0x2b], edx
lea rcx, str.GLOBAL
mov edx, ebx
lea r8, [0x1802063a2]
nop word [rax + rax]
movsx eax, byte [rcx]
xor eax, edx
imul edx, eax, 0x1000193
inc rcx
cmp rcx, r8
jne 0x180029e40
mov dword [rbp + 0x2f], edx
mov dword [rbp + 0x33], 0xda0c196e
lea rcx, str.__LINE__
mov edx, ebx
lea r8, [0x1802063d0]
nop dword [rax]
movsx eax, byte [rcx]
xor eax, edx
imul edx, eax, 0x1000193
inc rcx
cmp rcx, r8
jne 0x180029e70
mov dword [rbp + 0x37], edx
lea rcx, str.__FILE__
mov edx, ebx
lea r8, [0x1802063b0]
nop word [rax + rax]
movsx eax, byte [rcx]
xor eax, edx
imul edx, eax, 0x1000193
inc rcx
cmp rcx, r8
jne 0x180029ea0
mov dword [rbp + 0x3b], edx
lea rcx, str.__FUNC__
mov edx, ebx
lea r8, [0x1802063c0]
nop word [rax + rax]
movsx eax, byte [rcx]
xor eax, edx
imul edx, eax, 0x1000193
inc rcx
cmp rcx, r8
jne 0x180029ed0
mov dword [rbp + 0x3f], edx
lea rcx, str.__CLASS__
mov edx, ebx
lea r8, [0x1802063e1]
nop word [rax + rax]
movsx eax, byte [rcx]
xor eax, edx
imul edx, eax, 0x1000193
inc rcx
cmp rcx, r8
jne 0x180029f00
mov dword [rbp + 0x43], edx
mov dword [rbp + 0x6f], 0
mov eax, dword [rbp + 0x6f]
mov dword [0x180303c40], eax
mov qword [0x180303c48], r14
mov qword [0x180303c50], r14
mov ecx, 0x18
call fcn.1801a2c80
mov qword [rax], rax
mov qword [rax + 8], rax
mov qword [0x180303c48], rax
mov qword [0x180303c58], r14
xorps xmm0, xmm0
movdqa xmmword [0x180303c60], xmm0
mov qword [0x180303c70], 7
mov qword [0x180303c78], 8
mov dword [0x180303c40], 0x3f800000
mov r8, qword [0x180303c48]
mov edx, 0x10
lea rcx, [0x180303c58]
call fcn.1800214d0
nop
lea rdi, [rbp - 0x19]
nop dword [rax + rax]
mov r8, rdi
lea rdx, [rbp - 0x29]
lea rcx, [0x180303c40]
call fcn.18002e9b0
add rdi, 4
lea rax, [rbp + 0x47]
cmp rdi, rax
jne 0x180029fa0
lea rcx, [0x1801e0c00]
call fcn.1801a3014
nop
lea rcx, [0x180303c34]
call fcn.1801a2b9c
mov rcx, qword [rsi + 0x10]
cmp qword [rsi + 0x18], 0xf
jbe 0x180029fec
mov rax, qword [rsi]
add rcx, rax
jmp 0x180029ff2
add rcx, rsi
mov rax, rsi
cmp rax, rcx
je 0x18002a013
nop word [rax + rax]
movsx edx, byte [rax]
xor edx, ebx
imul ebx, edx, 0x1000193
inc rax
cmp rax, rcx
jne 0x18002a000
movzx edx, bl
movabs rax, 0xcbf29ce484222325
xor rdx, rax
movabs r8, 0x100000001b3
imul rdx, r8
mov eax, ebx
shr eax, 8
movzx ecx, al
xor rdx, rcx
imul rdx, r8
mov eax, ebx
shr eax, 0x10
movzx ecx, al
xor rdx, rcx
imul rdx, r8
mov eax, ebx
shr rax, 0x18
xor rdx, rax
imul rdx, r8
and rdx, qword [0x180303c70]
add rdx, rdx
mov rcx, qword [0x180303c58]
mov rax, qword [rcx + rdx*8 + 8]
cmp rax, qword [0x180303c48]
je 0x18002a095
mov rcx, qword [rcx + rdx*8]
cmp ebx, dword [rax + 0x10]
je 0x18002a092
cmp rax, rcx
je 0x18002a095
mov rax, qword [rax + 8]
cmp ebx, dword [rax + 0x10]
jne 0x18002a084
mov r14, rax
test r14, r14
setne al
lea r11, [rsp + 0x90]
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x30]
mov rsp, r11
pop r14
pop rdi
pop rbp
ret