Function at 0x140080230
Capabilities:
Encode data using xor
Hash data using fnv
Read file on windows

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x9e8]
sub rsp, 0xae8
mov rax, qword [0x14022b800]
xor rax, rsp
mov qword [rbp + 0x9d8], rax
mov r15, r9
mov r14, rcx
mov qword [rbp - 0x70], rdx
mov qword [rbp - 0x20], r8
mov qword [rbp - 0x58], r9
lea rcx, [rbp + 0x198]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
xor edx, edx
mov r8d, 0x800
lea rcx, [rbp + 0x1a0]
call fcn.140152140
lea r8, str.OpenCL_BuildProgram
mov edx, 0x400
lea rcx, [rbp + 0x1a0]
call fcn.140155cf8
mov dword [rbp + 0x190], 6
mov byte [rbp + 0x9a0], 0
xorps xmm0, xmm0
movsd qword [rbp + 0x9a8], xmm0
mov byte [rbp + 0x9b0], 0
mov rdx, r15
lea rcx, [rbp - 0x48]
call fcn.140050bf0
nop
mov r8d, dword [r14 + 0x50]
lea r9, [rbp + 0x9d5]
test r8d, r8d
jns 0x140080330
neg r8d
nop dword [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 0x1400802f0
dec r9
mov byte [r9], 0x2d
jmp 0x14008035a
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 0x140080330
xor r13d, r13d
mov qword [rsp + 0x40], r13
mov r8d, r13d
mov qword [rsp + 0x50], r13
mov eax, 0xf
mov qword [rsp + 0x58], rax
mov byte [rsp + 0x40], r8b
lea rcx, [rbp + 0x9d5]
cmp r9, rcx
je 0x1400803a6
lea r8, [rbp + 0x9d5]
sub r8, r9
mov rdx, r9
lea rcx, [rsp + 0x40]
call fcn.140005210
mov rax, qword [rsp + 0x58]
mov r8, qword [rsp + 0x50]
lea rdx, [rsp + 0x40]
cmp rax, 0x10
cmovae rdx, qword [rsp + 0x40]
lea rcx, [rbp - 0x48]
call fcn.140051d70
nop
lea rcx, [rsp + 0x40]
call fcn.140005190
mov rdi, qword [rbp - 0x20]
mov rcx, qword [rbp - 0x38]
mov rdx, qword [rbp - 0x30]
mov rax, rdx
sub rax, rcx
cmp rdi, rax
ja 0x14008040d
lea rax, [rcx + rdi]
mov qword [rbp - 0x38], rax
lea rbx, [rbp - 0x48]
cmp rdx, 0x10
cmovae rbx, qword [rbp - 0x48]
add rbx, rcx
mov r8, rdi
mov rdx, qword [rbp - 0x70]
mov rcx, rbx
call fcn.140151a90
mov byte [rbx + rdi], 0
jmp 0x140080422
mov qword [rsp + 0x20], rdi
mov r9, qword [rbp - 0x70]
mov rdx, rdi
lea rcx, [rbp - 0x48]
call fcn.140053a70
lea rdx, [rbp - 0x48]
cmp qword [rbp - 0x30], 0x10
cmovae rdx, qword [rbp - 0x48]
movabs rdi, 0xcbf29ce484222325
mov rcx, r13
mov r8, qword [rbp - 0x38]
test r8, r8
je 0x140080463
movabs r9, 0x100000001b3
movzx eax, byte [rcx + rdx]
xor rdi, rax
imul rdi, r9
inc rcx
cmp rcx, r8
jb 0x140080450
mov r8, rdi
lea rdx, str.clBuildProgram_hash__llu
mov ecx, 6
call fcn.140083970
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp + 0x10], xmm0
movups xmmword [rbp + 0x20], xmm0
movups xmmword [rbp + 0x30], xmm0
movups xmmword [rbp + 0x40], xmm0
movups xmmword [rbp + 0x50], xmm0
movups xmmword [rbp + 0x60], xmm0
movups xmmword [rbp + 0x70], xmm0
mov qword [rbp + 0x80], rax
lea rcx, [rbp + 0x10]
call fcn.140081050
nop
mov r8, r15
cmp qword [r15 + 0x18], 0x10
jb 0x1400804b6
mov r8, qword [r15]
mov r9, qword [r15 + 0x10]
add r9, r8
lea rdx, [rbp - 0x10]
lea rcx, [rbp + 0x10]
call fcn.140081450
nop
lea r8, [rbp - 0x10]
cmp qword [rbp + 8], 8
cmovae r8, qword [rbp - 0x10]
lea rdx, str.build_options:__s
mov ecx, 6
call fcn.140083970
mov r12, r13
mov qword [rbp - 0x80], r13
mov qword [rbp - 0x28], r13
xor r8d, r8d
xor edx, edx
mov rcx, rdi
call fcn.140080000
mov rsi, rax
test rax, rax
je 0x1400805a5
xor edx, edx
lea r8d, [rdx + 2]
mov rcx, rax
call fcn.14016ecb8
cmp eax, 0xffffffff
je 0x1400805a5
mov rcx, rsi
call fcn.14016e654
movsxd rbx, eax
cmp ebx, 0xffffffff
je 0x1400805a5
xor r8d, r8d
xor edx, edx
mov rcx, rsi
call fcn.14016ecb8
mov qword [rbp - 0x28], rbx
mov rcx, rbx
call fcn.14014f93c
mov qword [rbp - 0x80], rax
mov r9, rsi
mov r8, rbx
mov edx, 1
mov rcx, rax
call fcn.14016f3b4
mov rcx, rsi
call fcn.14016e938
lea r8, [r14 + 0x88]
lea rax, [rbp - 0x18]
mov qword [rsp + 0x30], rax
lea rax, [rbp - 0x14]
mov qword [rsp + 0x28], rax
lea rax, [rbp - 0x80]
mov qword [rsp + 0x20], rax
lea r9, [rbp - 0x28]
mov edx, 1
mov rcx, qword [r14 + 0x68]
call qword [sym.imp.OpenCL.dll_clCreateProgramWithBinary]
mov r12, rax
mov rbx, qword [rbp - 0x80]
mov rcx, rbx
call fcn.14014f59c
mov rax, qword [rbp - 0x80]
mov ecx, 0x8123
test rbx, rbx
cmovne rax, rcx
mov qword [rbp - 0x80], rax
test r12, r12
je 0x140080603
mov r9, r15
cmp qword [r15 + 0x18], 0x10
jb 0x1400805d7
mov r9, qword [r15]
lea rsi, [r14 + 0x88]
mov qword [rsp + 0x28], r13
mov qword [rsp + 0x20], r13
mov r8, rsi
mov edx, 1
mov rcx, r12
call qword [sym.imp.OpenCL.dll_clBuildProgram]
test eax, eax
je 0x14008091c
jmp 0x14008060a
lea rsi, [r14 + 0x88]
mov qword [rsp + 0x68], rsi
lea rdx, str.clBuildProgram_rebuild_from_source
mov ecx, 6
call fcn.140083970
mov dword [rbp - 0x50], r13d
lea rax, [rbp - 0x50]
mov qword [rsp + 0x20], rax
lea r9, [rbp - 0x20]
lea r8, [rbp - 0x70]
mov edx, 1
mov rcx, qword [r14 + 0x68]
call qword [sym.imp.OpenCL.dll_clCreateProgramWithSource]
mov r12, rax
mov r8d, dword [rbp - 0x50]
test r8d, r8d
jne 0x1400808b5
test rax, rax
je 0x1400808b5
lea rdx, str.clCreateProgramWithSource_successful__building_program...
lea ecx, [r8 + 6]
call fcn.140083970
mov r9, r15
cmp qword [r15 + 0x18], 0x10
jb 0x14008067a
mov r9, qword [r15]
lea r8, [r14 + 0x88]
mov qword [rsp + 0x28], r13
mov qword [rsp + 0x20], r13
mov edx, 1
mov rcx, r12
call qword [sym.imp.OpenCL.dll_clBuildProgram]
mov ebx, eax
mov r8d, eax
lea rdx, str.clBuildProgram_returned:__d
mov ecx, 6
call fcn.140083970
test ebx, ebx
jne 0x1400808c6
mov qword [rsp + 0x78], r13
lea rax, [rsp + 0x78]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
mov edx, 0x1165
mov rcx, r12
call qword [sym.imp.OpenCL.dll_clGetProgramInfo]
mov ebx, eax
mov r9, qword [rsp + 0x78]
mov r8d, eax
lea rdx, str.clGetProgramInfo_CL_PROGRAM_BINARY_SIZES_returned__d_:_number_of_bin__lld
mov ecx, 6
call fcn.140083970
test ebx, ebx
jne 0x1400808c6
mov rcx, qword [rsp + 0x78]
test rcx, rcx
je 0x1400808c6
mov eax, 8
mul rcx
mov rbx, 0xffffffffffffffff
cmovo rax, rbx
mov rcx, rax
call fcn.14014f93c
mov r14, rax
mov qword [rsp + 0x60], rax
mov eax, 8
mul qword [rsp + 0x78]
cmovo rax, rbx
mov rcx, rax
call fcn.14014f93c
mov r13, rax
mov qword [rsp + 0x70], rax
mov r8, qword [rsp + 0x78]
lea r8, [r8*8]
lea rax, [rsp + 0x78]
mov qword [rsp + 0x20], rax
mov r9, r14
mov edx, 0x1165
mov rcx, r12
call qword [sym.imp.OpenCL.dll_clGetProgramInfo]
mov ebx, eax
mov r8d, eax
lea rdx, str.clGetProgramInfo_CL_PROGRAM_BINARY_SIZES_for_sizes_returned__d
mov ecx, 6
call fcn.140083970
mov r8, qword [rsp + 0x78]
test ebx, ebx
jne 0x1400807e5
xor esi, esi
test r8, r8
je 0x1400807e5
mov rbx, r14
mov r14, r13
sub r14, rbx
mov r9, qword [rbx]
mov r8, rsi
lea rdx, str.bin_size__d__lld
mov ecx, 6
call fcn.140083970
mov rcx, qword [rbx]
test rcx, rcx
je 0x1400807c9
call fcn.14014f93c
jmp 0x1400807cb
xor eax, eax
mov qword [r14 + rbx], rax
inc rsi
add rbx, 8
mov r8, qword [rsp + 0x78]
cmp rsi, r8
jb 0x1400807a3
mov r14, qword [rsp + 0x60]
lea r8, [r8*8]
lea rax, [rsp + 0x78]
mov qword [rsp + 0x20], rax
mov r9, r13
mov edx, 0x1166
mov rcx, r12
call qword [sym.imp.OpenCL.dll_clGetProgramInfo]
mov ebx, eax
mov r8d, eax
lea rdx, str.clGetProgramInfo_CL_PROGRAM_BINARIES_returned__d
mov ecx, 6
call fcn.140083970
test ebx, ebx
jne 0x14008087c
xor esi, esi
cmp qword [rsp + 0x78], rsi
jbe 0x14008087c
mov rbx, r14
sub r13, r14
cmp qword [rbx], 0
jbe 0x140080869
mov r8b, 1
mov rdx, rsi
mov rcx, rdi
call fcn.140080000
mov r14, rax
test rax, rax
je 0x140080869
mov r9, rax
mov r8, qword [rbx]
mov edx, 1
mov rcx, qword [rbx + r13]
call fcn.14016f0b0
mov rcx, r14
call fcn.14016e938
inc rsi
add rbx, 8
cmp rsi, qword [rsp + 0x78]
jb 0x140080831
mov r13, qword [rsp + 0x70]
xor ebx, ebx
cmp qword [rsp + 0x78], rbx
jbe 0x140080899
mov rcx, qword [r13 + rbx*8]
call fcn.14014f59c
inc rbx
cmp rbx, qword [rsp + 0x78]
jb 0x140080885
mov rcx, qword [rsp + 0x60]
call fcn.14014f59c
mov rcx, r13
call fcn.14014f59c
mov rsi, qword [rsp + 0x68]
xor r13d, r13d
jmp 0x1400808c6
lea rdx, str.clCreateProgramWithSource_failed__error___d
mov ecx, 6
call fcn.1400838f0
mov dword [rbp - 0x4c], 0xffffffff
lea rdx, str.Printing_cl_build_logs...
mov ecx, 6
call fcn.140083970
mov qword [rsp + 0x28], r13
lea rax, [rbp - 0x4c]
mov qword [rsp + 0x20], rax
mov r9d, 4
mov r8d, 0x1181
mov rdx, qword [rsi]
mov rcx, r12
call qword [sym.imp.OpenCL.dll_clGetProgramBuildInfo]
mov r9d, dword [rbp - 0x4c]
mov r8d, eax
lea rdx, str.clGetProgramBuildInfo_CL_PROGRAM_BUILD_STATUS_returned__d_:_build_status_d
mov ecx, 6
call fcn.140083970
mov qword [rbp - 0x60], r13
lea rax, [rbp - 0x60]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], r13
xor r9d, r9d
mov r8d, 0x1183
mov rdx, qword [rsi]
mov rcx, r12
call qword [sym.imp.OpenCL.dll_clGetProgramBuildInfo]
test eax, eax
jne 0x140080a0e
mov rcx, qword [rbp - 0x60]
cmp rcx, 1
jbe 0x140080a0e
call fcn.1401567b4
mov rbx, rax
mov qword [rsp + 0x28], r13
mov qword [rsp + 0x20], rax
mov r9, qword [rbp - 0x60]
mov r8d, 0x1183
mov rdx, qword [rsi]
mov rcx, r12
call qword [sym.imp.OpenCL.dll_clGetProgramBuildInfo]
xor edx, edx
mov r8d, 0xf8
lea rcx, [rbp + 0x90]
call fcn.140152140
lea rcx, [rbp + 0x90]
call fcn.14006dfd0
nop
mov rdx, rbx
lea rcx, [rbp + 0xa0]
call fcn.1400534c0
mov rcx, rbx
call fcn.140155e3c
lea rdx, [rsp + 0x40]
lea rcx, [rbp + 0xa8]
call fcn.140051c70
lea rax, [rsp + 0x40]
mov qword [rsp + 0x68], rax
lea r9, [rsp + 0x40]
cmp qword [rsp + 0x58], 8
cmovae r9, qword [rsp + 0x40]
mov qword [rsp + 0x20], r13
xor edx, edx
lea r8d, [rdx + 6]
call fcn.140083ad0
nop
lea rcx, [rsp + 0x40]
call fcn.140004ff0
nop
lea rcx, [rbp + 0x90]
call fcn.1400678c0
nop
lea rcx, [rbp - 0x10]
call fcn.140004ff0
nop
lea rax, vtable.std::wstring_convert_class_std::codecvt_utf8_utf16_wchar_t__1114111__0___wchar_t__class_std::allocator_wchar_t___class_std::allocator_char__.0
mov qword [rbp + 0x10], rax
lea rcx, [rbp + 0x50]
call fcn.140004ff0
lea rcx, [rbp + 0x30]
call fcn.140005190
mov rcx, qword [rbp + 0x28]
test rcx, rcx
je 0x140080a58
mov rax, qword [rcx]
call qword [rax + 0x10]
test rax, rax
je 0x140080a58
mov r8, qword [rax]
mov edx, 1
mov rcx, rax
call qword [r8]
nop
lea rcx, [rbp - 0x48]
call fcn.140005190
nop
lea rcx, [rbp + 0x190]
call fcn.140083fb0
nop
mov rcx, r15
call fcn.140005190
mov rax, r12
mov rcx, qword [rbp + 0x9d8]
xor rcx, rsp
call fcn.14014f2f0
add rsp, 0xae8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret