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

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x4c0]
sub rsp, 0x5c0
mov rax, qword [0x1400ce568]
xor rax, rsp
mov qword [rbp + 0x4b0], rax
mov rsi, rcx
xor r12d, r12d
mov dword [rsp + 0x3c], r12d
lea rdi, [rcx + 0xb0]
mov r14, qword [rdi + 0x10]
mov rcx, rdi
mov r15, qword [rdi + 0x18]
cmp r15, 0x10
jb 0x14006bdfe
mov rcx, qword [rdi]
cmp r14, 8
jne 0x14006be94
mov r8, r14
lea rdx, str.__LINE__
call fcn.14007c560
test eax, eax
jne 0x14006be94
mov qword [rbp - 0x38], r12
mov qword [rbp - 0x28], r12
mov qword [rbp - 0x20], 0xf
mov byte [rbp - 0x38], r12b
mov edx, dword [rsi + 0x90]
lea rcx, [rbp + 0x110]
call fcn.140031a00
lea r8, [rbp - 0x38]
mov rdx, rax
mov rcx, rsi
call fcn.14006fc70
nop
mov rdx, qword [rbp - 0x20]
cmp rdx, 0x10
jb 0x14006bf3f
inc rdx
mov rcx, qword [rbp - 0x38]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14006bf3a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14006c9b8
jmp 0x14006bf3a
mov rcx, rdi
cmp r15, 0x10
jb 0x14006bea0
mov rcx, qword [rdi]
cmp r14, 8
jne 0x14006bf46
mov r8, r14
lea rdx, str.__FILE__
call fcn.14007c560
test eax, eax
jne 0x14006bf46
mov qword [rbp - 0x18], r12
mov qword [rbp - 8], r12
mov qword [rbp], 0xf
mov byte [rbp - 0x18], r12b
lea rdx, [rsi + 0x70]
lea rcx, [rbp + 0x130]
call fcn.140014750
mov rdx, rax
lea rcx, [rbp + 0x150]
call fcn.14006a100
lea r8, [rbp - 0x18]
mov rdx, rax
mov rcx, rsi
call fcn.14006fc70
nop
mov rdx, qword [rbp]
cmp rdx, 0x10
jb 0x14006bf3f
inc rdx
mov rcx, qword [rbp - 0x18]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14006bf3a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14006c9be
call fcn.140078bb0
mov al, 1
jmp 0x14006c982
mov rcx, rdi
cmp r15, 0x10
jb 0x14006bf52
mov rcx, qword [rdi]
cmp r14, 0xd
jne 0x14006c168
mov r8, r14
lea rdx, str.__FILE_STEM__
call fcn.14007c560
test eax, eax
jne 0x14006c168
lea rdx, [rsi + 0x70]
lea rcx, [rbp + 0x170]
call fcn.140067000
nop
mov rcx, qword [rax + 0x10]
cmp qword [rax + 0x18], 8
jb 0x14006bf92
mov rax, qword [rax]
lea rdi, [rax + rcx*2]
mov rbx, rdi
mov rdx, rdi
mov rcx, rax
call fcn.14001a020
cmp rax, rdi
je 0x14006bfeb
nop dword [rax]
movzx ecx, word [rax]
cmp cx, 0x5c
je 0x14006bfbf
cmp cx, 0x2f
jne 0x14006bfd0
add rax, 2
cmp rax, rdi
jne 0x14006bfb0
mov r8, rbx
jmp 0x14006c02d
lea rcx, [rbx - 2]
movzx edx, word [rcx]
cmp dx, 0x5c
je 0x14006bfeb
cmp dx, 0x2f
je 0x14006bfeb
mov rbx, rcx
cmp rax, rcx
jne 0x14006bfd0
mov r8, rbx
cmp rbx, rdi
je 0x14006c02d
cmp word [r8], 0x3a
je 0x14006c003
add r8, 2
cmp r8, rdi
jne 0x14006bff3
cmp rbx, r8
je 0x14006c02d
lea rax, [r8 - 2]
cmp rbx, rax
je 0x14006c02d
cmp word [rax], 0x2e
jne 0x14006c13f
lea rcx, [rax - 2]
cmp rbx, rcx
jne 0x14006c02a
cmp word [rcx], 0x2e
je 0x14006c02d
mov r8, rax
sub r8, rbx
sar r8, 1
mov qword [rbp + 0x248], r12
mov qword [rbp + 0x258], r12
mov qword [rbp + 0x260], 7
mov word [rbp + 0x248], r12w
mov rdx, rbx
lea rcx, [rbp + 0x248]
call fcn.14001ce90
nop
lea rcx, [rbp + 0x170]
call fcn.14001c6b0
mov qword [rbp - 0x78], r12
mov qword [rbp - 0x68], r12
mov qword [rbp - 0x60], 0xf
mov byte [rbp - 0x78], 0
lea rax, [rbp + 0x248]
cmp qword [rbp + 0x260], 8
cmovae rax, qword [rbp + 0x248]
mov qword [rbp + 0x10], rax
mov rax, qword [rbp + 0x258]
mov qword [rbp + 0x18], rax
movaps xmm0, xmmword [rbp + 0x10]
movdqa xmmword [rbp + 0x70], xmm0
lea r9, [rsp + 0x38]
lea r8, [rbp + 0x70]
mov edx, 0xfde9
lea rcx, [rbp + 0xb0]
call fcn.140011220
lea rdx, [rbp + 0xb0]
lea rcx, [rbp + 0x190]
call fcn.14006a100
lea r8, [rbp - 0x78]
mov rdx, rax
mov rcx, rsi
call fcn.14006fc70
nop
mov rdx, qword [rbp - 0x60]
cmp rdx, 0x10
jb 0x14006c12c
inc rdx
mov rcx, qword [rbp - 0x78]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14006c126
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14006c9c4
call fcn.140078bb0
nop
lea rcx, [rbp + 0x248]
call fcn.14001c6b0
mov al, 1
jmp 0x14006c982
sub rax, 2
cmp rbx, rax
je 0x14006c02d
nop dword [rax]
cmp word [rax], 0x2e
je 0x14006c02a
sub rax, 2
cmp rbx, rax
jne 0x14006c150
jmp 0x14006c02d
mov rcx, rdi
cmp r15, 0x10
jb 0x14006c174
mov rcx, qword [rdi]
cmp r14, 0xd
jne 0x14006c297
mov r8, r14
lea rdx, str.__FILE_NAME__
call fcn.14007c560
test eax, eax
jne 0x14006c297
lea rdx, [rsi + 0x70]
lea rcx, [rbp + 0x1b0]
call fcn.140067000
nop
lea rdx, [rbp + 0x268]
mov rcx, rax
call fcn.140022a90
nop
lea rcx, [rbp + 0x1b0]
call fcn.14001c6b0
mov qword [rbp - 0x58], r12
mov qword [rbp - 0x48], r12
mov qword [rbp - 0x40], 0xf
mov byte [rbp - 0x58], 0
lea rax, [rbp + 0x268]
cmp qword [rbp + 0x280], 8
cmovae rax, qword [rbp + 0x268]
mov qword [rbp + 0x20], rax
mov rax, qword [rbp + 0x278]
mov qword [rbp + 0x28], rax
movaps xmm0, xmmword [rbp + 0x20]
movdqa xmmword [rbp + 0x80], xmm0
lea r9, [rsp + 0x39]
lea r8, [rbp + 0x80]
mov edx, 0xfde9
lea rcx, [rbp + 0xd0]
call fcn.140011220
lea rdx, [rbp + 0xd0]
lea rcx, [rbp + 0x1d0]
call fcn.14006a100
lea r8, [rbp - 0x58]
mov rdx, rax
mov rcx, rsi
call fcn.14006fc70
nop
mov rdx, qword [rbp - 0x40]
cmp rdx, 0x10
jb 0x14006c284
inc rdx
mov rcx, qword [rbp - 0x58]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14006c27e
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14006c9ca
call fcn.140078bb0
nop
lea rcx, [rbp + 0x268]
call fcn.14001c6b0
mov al, 1
jmp 0x14006c982
mov qword [rsp + 0x40], r12
lea rcx, [rsi + 0x180]
mov r8, rdi
lea rdx, [rsp + 0x40]
call fcn.140034750
mov rbx, qword [rsp + 0x40]
cmp rbx, qword [rsi + 0x188]
je 0x14006c980
imul r13, qword [rsi + 0x108], 0xd0
add r13, qword [rsi + 0xe8]
mov rdx, rdi
cmp r15, 0x10
jb 0x14006c2e0
mov rdx, qword [rdi]
movabs r9, 0xcbf29ce484222325
mov rcx, r12
test r14, r14
je 0x14006c313
movabs r8, 0x100000001b3
nop dword [rax]
movzx eax, byte [rcx + rdx]
xor r9, rax
imul r9, r8
inc rcx
cmp rcx, r14
jb 0x14006c300
mov r8, rdi
lea rdx, [rbp + 0xf0]
lea rcx, [r13 + 0x90]
call fcn.140012980
mov rcx, qword [rax + 8]
test rcx, rcx
jne 0x14006c339
mov rcx, qword [r13 + 0x98]
cmp rcx, qword [r13 + 0x98]
jne 0x14006c980
lea rdx, [rsi + 0x70]
lea rcx, [rbp + 0x288]
call fcn.140014750
mov eax, dword [rsi + 0x90]
mov dword [rbp + 0x2a8], eax
mov eax, dword [rsi + 0x94]
mov dword [rbp + 0x2ac], eax
movzx ecx, word [rsi + 0x110]
mov edx, 0x100
lea eax, [rcx + 1]
mov word [rsi + 0x110], ax
cmp cx, dx
jb 0x14006c416
mov qword [rsp + 0x48], r12
mov qword [rsp + 0x58], r12
mov qword [rsp + 0x60], 0xf
mov byte [rsp + 0x48], 0
mov r8d, 0x18
lea rdx, str.macro_recursion_too_high
lea rcx, [rsp + 0x48]
call fcn.14001cd70
nop
lea r8, [rsp + 0x48]
lea rdx, [rbp + 0x288]
mov rcx, rsi
call fcn.140069b80
nop
mov rdx, qword [rsp + 0x60]
cmp rdx, 0x10
jb 0x14006c40f
inc rdx
mov rcx, qword [rsp + 0x48]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14006c40a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14006c9d0
call fcn.140078bb0
xor bl, bl
jmp 0x14006c8a7
xorps xmm1, xmm1
movdqu xmmword [rbp + 0x210], xmm1
mov qword [rbp + 0x220], r12
add rbx, 0x10
mov qword [rsp + 0x30], rbx
cmp byte [rbx + 0x59], 0
je 0x14006c7ac
mov edx, 0x28
mov rcx, rsi
call fcn.140068bd0
test al, al
je 0x14006c979
lea rdi, [0x1400ad8ce]
nop word [rax + rax]
mov ebx, r12d
mov qword [rbp + 0x1f0], r12
mov qword [rbp + 0x200], r12
mov qword [rbp + 0x208], 0xf
mov byte [rbp + 0x1f0], 0
mov rcx, rsi
call fcn.140068f70
test al, al
je 0x14006c8bb
mov ecx, dword [rsi + 0x68]
cmp ecx, 0x2c
jne 0x14006c49f
test ebx, ebx
je 0x14006c4ea
lea eax, [rbx + 1]
cmp ecx, 0x28
cmovne eax, ebx
mov ebx, eax
cmp ecx, 0x29
jne 0x14006c4d4
sub ebx, 1
js 0x14006c4ea
lea rdx, [rsi + 0x48]
mov r8, qword [rdx + 0x10]
cmp qword [rdx + 0x18], 0x10
jb 0x14006c4c6
mov rdx, qword [rdx]
lea rcx, [rbp + 0x1f0]
call fcn.14001c9d0
jmp 0x14006c483
cmp ecx, 0x20
jne 0x14006c4b4
movzx edx, cl
lea rcx, [rbp + 0x1f0]
call fcn.1400233e0
jmp 0x14006c483
lea r14, [rbp + 0x1f0]
mov r12, qword [rbp + 0x1f0]
mov r13, qword [rbp + 0x208]
cmp r13, 0x10
cmovae r14, r12
mov r15, qword [rbp + 0x200]
test r15, r15
je 0x14006c565
xor edx, edx
mov r8d, 0x100
lea rcx, [rbp + 0x3b0]
call fcn.14007cd30
lea rcx, [0x1400ad8cc]
nop
movzx eax, byte [rcx]
mov byte [rbp + rax + 0x3b0], 1
inc rcx
cmp rcx, rdi
jne 0x14006c530
lea rcx, [r15 + r14]
mov rdi, r14
cmp r14, rcx
jae 0x14006c565
nop
movzx eax, byte [rdi]
cmp byte [rbp + rax + 0x3b0], 0
je 0x14006c5dc
inc rdi
cmp rdi, rcx
jb 0x14006c550
lea rax, [rbp + 0x1f0]
cmp r13, 0x10
cmovae rax, r12
xor r12d, r12d
mov qword [rbp + 0x200], r12
mov byte [rax], r12b
mov rdx, qword [rbp + 0x218]
cmp rdx, qword [rbp + 0x220]
je 0x14006c732
mov qword [rdx], r12
mov qword [rdx + 0x10], r12
mov qword [rdx + 0x18], r12
movups xmm0, xmmword [rbp + 0x1f0]
movups xmmword [rdx], xmm0
movups xmm1, xmmword [rbp + 0x200]
movups xmmword [rdx + 0x10], xmm1
mov qword [rbp + 0x200], r12
mov eax, 0xf
mov qword [rbp + 0x208], rax
mov byte [rbp + 0x1f0], 0
add qword [rbp + 0x218], 0x20
jmp 0x14006c74c
sub rdi, r14
cmp rdi, 0xffffffffffffffff
je 0x14006c565
lea r14, [rbp + 0x1f0]
cmp r13, 0x10
cmovae r14, r12
test r15, r15
je 0x14006c671
xor edx, edx
mov r8d, 0x100
lea rcx, [rbp + 0x2b0]
call fcn.14007cd30
lea rcx, [0x1400ad8cc]
lea rdx, [0x1400ad8ce]
nop dword [rax + rax]
movzx eax, byte [rcx]
mov byte [rbp + rax + 0x2b0], 1
inc rcx
cmp rcx, rdx
jne 0x14006c620
lea rax, [r15 - 1]
mov r8, 0xffffffffffffffff
cmp rax, r8
cmovb r8, rax
add r8, r14
movzx eax, byte [r8]
cmp byte [rbp + rax + 0x2b0], 0
je 0x14006c66c
cmp r8, r14
je 0x14006c671
dec r8
movzx eax, byte [r8]
cmp byte [rbp + rax + 0x2b0], 0
jne 0x14006c656
sub r8, r14
jmp 0x14006c678
mov r8, 0xffffffffffffffff
xor r12d, r12d
mov qword [rbp + 0x30], r12
mov qword [rbp + 0x40], r12
mov qword [rbp + 0x48], 0xf
cmp r15, rdi
jb 0x14006c9d6
lfence
sub r8, rdi
inc r8
mov rax, qword [rbp + 0x200]
sub rax, rdi
cmp rax, r8
cmovb r8, rax
lea rdx, [rbp + 0x1f0]
cmp qword [rbp + 0x208], 0x10
cmovae rdx, qword [rbp + 0x1f0]
add rdx, rdi
lea rcx, [rbp + 0x30]
call fcn.14001cd70
or dword [rsp + 0x3c], 0x20
mov rdx, qword [rbp + 0x208]
cmp rdx, 0x10
jb 0x14006c717
inc rdx
mov rcx, qword [rbp + 0x1f0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14006c712
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14006c9dc
call fcn.140078bb0
movups xmm0, xmmword [rbp + 0x30]
movups xmmword [rbp + 0x1f0], xmm0
movups xmm1, xmmword [rbp + 0x40]
movups xmmword [rbp + 0x200], xmm1
jmp 0x14006c581
lea r8, [rbp + 0x1f0]
lea rcx, [rbp + 0x210]
call fcn.1400127d0
mov rax, qword [rbp + 0x208]
test ebx, ebx
js 0x14006c79b
cmp rax, 0x10
lea rdi, [0x1400ad8ce]
jb 0x14006c460
lea rdx, [rax + 1]
mov rcx, qword [rbp + 0x1f0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14006c791
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14006c9b2
call fcn.140078bb0
jmp 0x14006c450
lea rcx, [rbp + 0x1f0]
call fcn.140015dd0
mov rbx, qword [rsp + 0x30]
mov qword [rbp + 0x228], r12
mov qword [rbp + 0x238], r12
mov qword [rbp + 0x240], 0xf
mov byte [rbp + 0x228], 0
lea r8, [rbx + 0x20]
lea rax, [rbp + 0x228]
mov qword [rsp + 0x20], rax
lea r9, [rbp + 0x210]
mov rdx, rbx
mov rcx, rsi
call fcn.14006c9f0
cmp qword [rbp + 0x238], 0
je 0x14006c88b
mov qword [rbp + 0x50], r12
movdqa xmm0, xmmword [0x1400aa470]
movdqu xmmword [rbp + 0x60], xmm0
mov byte [rbp + 0x50], 0
movups xmm0, xmmword [rbp + 0x228]
movups xmmword [rbp + 0x90], xmm0
movups xmm1, xmmword [rbp + 0x238]
movups xmmword [rbp + 0xa0], xmm1
mov qword [rbp + 0x238], r12
mov qword [rbp + 0x240], 0xf
mov byte [rbp + 0x228], 0
lea r8, [rbp + 0x50]
lea rdx, [rbp + 0x90]
mov rcx, rsi
call fcn.14006fc70
nop
lea rcx, [rbp + 0x50]
call fcn.140015dd0
imul rcx, qword [rsi + 0x108], 0xd0
add rcx, 0x90
add rcx, qword [rsi + 0xe8]
mov r8, rbx
lea rdx, [rbp + 0x100]
call fcn.1400666a0
mov bl, 1
lea rcx, [rbp + 0x228]
call fcn.140015dd0
nop
lea rcx, [rbp + 0x210]
call fcn.140016640
nop
lea rcx, [rbp + 0x288]
call fcn.140015dd0
movzx eax, bl
jmp 0x14006c982
mov qword [rsp + 0x68], r12
mov qword [rsp + 0x78], r12
mov qword [rbp - 0x80], 0xf
mov byte [rsp + 0x68], 0
mov r8d, 0x29
lea rdx, str.unexpected_end_of_file_in_macro_expansion
lea rcx, [rsp + 0x68]
call fcn.14001cd70
nop
lea r8, [rsp + 0x68]
lea rdx, [rbp + 0x288]
mov rcx, rsi
call fcn.140069b80
nop
mov rdx, qword [rbp - 0x80]
cmp rdx, 0x10
jb 0x14006c93c
inc rdx
mov rcx, qword [rsp + 0x68]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14006c936
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14006c9dc
call fcn.140078bb0
nop
mov rdx, qword [rbp + 0x208]
cmp rdx, 0x10
jb 0x14006c979
inc rdx
mov rcx, qword [rbp + 0x1f0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14006c974
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14006c9b2
call fcn.140078bb0
xor bl, bl
jmp 0x14006c89a
xor al, al
mov rcx, qword [rbp + 0x4b0]
xor rcx, rsp
call fcn.1400787f0
lea r11, [rsp + 0x5c0]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
call fcn.140080ae0
nop
call fcn.140080ae0
int3
call fcn.140080ae0
nop
call fcn.140080ae0
nop
call fcn.140080ae0
nop
call fcn.140080ae0
nop
call fcn.14001c7e0
int3
call fcn.140080ae0
int3