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

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x188
lea rbp, [rsp + 0x80]
movdqa xmmword [rbp + 0xf0], xmm15
movdqa xmmword [rbp + 0xe0], xmm14
movdqa xmmword [rbp + 0xd0], xmm13
movdqa xmmword [rbp + 0xc0], xmm12
movdqa xmmword [rbp + 0xb0], xmm11
movdqa xmmword [rbp + 0xa0], xmm10
movdqa xmmword [rbp + 0x90], xmm9
movdqa xmmword [rbp + 0x80], xmm8
movdqa xmmword [rbp + 0x70], xmm7
movdqa xmmword [rbp + 0x60], xmm6
mov qword [rbp + 0x58], 0xfffffffffffffffe
mov rbx, r9
mov r14, r8
mov rdi, rdx
pxor xmm0, xmm0
movdqa xmmword [rbp + 0x20], xmm0
mov qword [rbp + 0x30], 0
mov qword [rbp - 0x28], rcx
lea rsi, [rcx + 0x20]
mov rcx, rbp
mov rdx, rsi
call fcn.140001620
mov rcx, rbp
lea rdx, [rbp + 0x20]
call fcn.140002f60
mov r15d, eax
mov rax, qword [rbp + 0x18]
cmp rax, 8
jb 0x140004207
mov rcx, qword [rbp]
lea rdx, [rax*2 + 2]
cmp rdx, 0x1000
jb 0x140004202
mov r8, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r8
cmp rcx, 0x20
jae 0x140004c64
add rax, rax
add rax, 0x29
mov rdx, rax
mov rcx, r8
call fcn.140016e54
test r15b, r15b
je 0x140004b6f
lea rax, str..lua
mov qword [rbp - 0x20], rax
mov qword [rbp - 0x18], 4
call fcn.140018454
mov r15, rbp
lea r8, [rbp - 0x20]
mov rcx, r15
mov edx, eax
call fcn.140002760
lea rdx, [rbp - 0x20]
mov rcx, rsi
call fcn.1400051b0
mov rax, qword [rbp + 0x10]
cmp qword [rbp + 0x18], 8
jb 0x140004254
mov r15, qword [rbp]
mov qword [rbp - 0x50], r15
mov qword [rbp - 0x48], rax
lea rcx, [rbp - 0x20]
lea rdx, [rbp - 0x50]
call fcn.140009cb0
mov r15d, eax
mov rax, qword [rbp - 8]
cmp rax, 8
jb 0x1400042b2
mov rcx, qword [rbp - 0x20]
lea rdx, [rax*2 + 2]
cmp rdx, 0x1000
jb 0x1400042ad
mov r8, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r8
cmp rcx, 0x20
jae 0x140004c64
add rax, rax
add rax, 0x29
mov rdx, rax
mov rcx, r8
call fcn.140016e54
mov rax, qword [rbp + 0x18]
cmp rax, 8
jb 0x1400042f8
mov rcx, qword [rbp]
lea rdx, [rax*2 + 2]
cmp rdx, 0x1000
jb 0x1400042f3
mov r8, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r8
cmp rcx, 0x20
jae 0x140004c64
add rax, rax
add rax, 0x29
mov rdx, rax
mov rcx, r8
call fcn.140016e54
test r15d, r15d
jne 0x14000446c
mov rax, qword [rbp + 0x20]
cmp dword [rax], 0x24a4c1b
je 0x14000446c
mov rdx, qword [0x1400d46d8]
mov r15, rbp
lea r8, [rbp + 0x20]
mov rcx, r15
call fcn.140003d50
mov r12, qword [rbp + 0x10]
test r12, r12
je 0x140004363
mov rcx, qword [rbp + 0x20]
cmp rcx, qword [rbp + 0x28]
je 0x14000433e
mov qword [rbp + 0x28], rcx
mov rax, qword [rbp + 0x30]
sub rax, rcx
cmp rax, r12
jae 0x1400043fd
lea rcx, [rbp + 0x20]
lea r8, [rbp - 0x20]
mov rdx, r12
call fcn.1400082a0
jmp 0x140004413
mov rdx, qword [rbp - 0x28]
mov rax, qword [rdx + 0x30]
cmp qword [rdx + 0x38], 8
mov rcx, rsi
jb 0x140004379
mov rcx, qword [rdx + 0x20]
mov qword [rbp - 0x50], rcx
mov qword [rbp - 0x48], rax
call fcn.140018454
lea r15, [rbp - 0x20]
lea r8, [rbp - 0x50]
lea r9, [rbp + 0x40]
mov rcx, r15
mov edx, eax
call fcn.14000a110
cmp qword [rbp - 8], 0x10
jb 0x1400043a7
mov r15, qword [rbp - 0x20]
lea r8, str.failed_to_comlile
xor ecx, ecx
mov rdx, r15
xor r9d, r9d
call qword [sym.imp.USER32.dll_MessageBoxA]
mov rax, qword [rbp - 8]
cmp rax, 0x10
jb 0x14000442d
mov rcx, qword [rbp - 0x20]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x1400043f6
mov r8, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r8
cmp rcx, 0x20
jae 0x140004c64
add rax, 0x28
mov rdx, rax
mov rcx, r8
call fcn.140016e54
jmp 0x14000442d
lea r13, [rcx + r12]
xor edx, edx
mov r8, r12
call fcn.1400adeb0
mov qword [rbp + 0x28], r13
mov r12, qword [rbp + 0x10]
mov rcx, qword [rbp + 0x20]
cmp qword [rbp + 0x18], 0x10
jb 0x140004422
mov r15, qword [rbp]
mov rdx, r15
mov r8, r12
call fcn.1400ad810
mov rax, qword [rbp + 0x18]
cmp rax, 0x10
jb 0x14000446c
mov rcx, qword [rbp]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x140004467
mov r8, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r8
cmp rcx, 0x20
jae 0x140004c64
add rax, 0x28
mov rdx, rax
mov rcx, r8
call fcn.140016e54
mov r8, qword [r14 + 0x10]
cmp qword [r14 + 0x18], 8
jb 0x14000447a
mov r14, qword [r14]
pxor xmm0, xmm0
movdqa xmmword [rbp - 0x40], xmm0
movdqa xmmword [rbp - 0x50], xmm0
lea rcx, [rbp - 0x50]
mov rdx, r14
call fcn.14000a030
lea r14, [rbp - 0x20]
lea r8, [rbp - 0x50]
mov rcx, rsi
mov rdx, r14
call fcn.1400052c0
mov rax, qword [rbp - 0x10]
cmp qword [rbp - 8], 8
jb 0x1400044b6
mov r14, qword [rbp - 0x20]
mov qword [rbp + 0x40], r14
mov qword [rbp + 0x48], rax
call fcn.140018454
mov r14, rbp
lea r8, [rbp + 0x40]
lea r9, [rbp + 0x57]
mov rcx, r14
mov edx, eax
call fcn.14000a110
mov rcx, qword [rbp]
mov rax, qword [rbp + 0x18]
cmp rax, 0x10
cmovae r14, rcx
mov edx, 0xffffffff
nop dword [rax]
inc edx
cmp byte [r14 + rdx], 0
jne 0x1400044f0
test edx, edx
je 0x14000450d
cmp edx, 1
jne 0x140004518
mov r8d, 0x811c9dc5
xor r9d, r9d
jmp 0x140004588
mov r8d, 0x811c9dc5
jmp 0x1400045b4
mov r10d, edx
and r10d, 0xfffffffe
mov r8d, 0x811c9dc5
xor r9d, r9d
nop dword [rax + rax]
movzx r11d, byte [r14 + r9]
lea r15d, [r11 + 0x20]
lea r12d, [r11 - 0x5b]
cmp r12b, 0xe6
movzx r15d, r15b
cmovb r15d, r11d
movsx r11d, r15b
xor r11d, r8d
imul r8d, r11d, 0x1000193
movzx r11d, byte [r14 + r9 + 1]
lea r15d, [r11 + 0x20]
lea r12d, [r11 - 0x5b]
cmp r12b, 0xe6
movzx r15d, r15b
cmovb r15d, r11d
movsx r11d, r15b
xor r11d, r8d
imul r8d, r11d, 0x1000193
add r9, 2
cmp r10, r9
jne 0x140004530
test dl, 1
je 0x1400045b4
movzx edx, byte [r14 + r9]
lea r9d, [rdx + 0x20]
lea r10d, [rdx - 0x5b]
cmp r10b, 0xe6
movzx r9d, r9b
cmovb r9d, edx
movsx edx, r9b
xor r8d, edx
imul r8d, r8d, 0x1000193
mov dword [rbp + 0x40], r8d
cmp rax, 0x10
jb 0x1400045ef
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x1400045ea
mov r8, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r8
cmp rcx, 0x20
jae 0x140004c64
add rax, 0x28
mov rdx, rax
mov rcx, r8
call fcn.140016e54
mov qword [rbp + 0x10], 0
mov qword [rbp + 0x18], 0xf
mov byte [rbp], 0
mov rax, qword [rbp - 8]
cmp rax, 8
jb 0x140004649
mov rcx, qword [rbp - 0x20]
lea rdx, [rax*2 + 2]
cmp rdx, 0x1000
jb 0x140004644
mov r8, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r8
cmp rcx, 0x20
jae 0x140004c64
add rax, rax
add rax, 0x29
mov rdx, rax
mov rcx, r8
call fcn.140016e54
mov qword [rbp - 0x10], 0
mov qword [rbp - 8], 7
mov word [rbp - 0x20], 0
mov rax, qword [rbp - 0x38]
cmp rax, 8
jb 0x1400046a5
mov rcx, qword [rbp - 0x50]
lea rdx, [rax*2 + 2]
cmp rdx, 0x1000
jb 0x1400046a0
mov r8, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r8
cmp rcx, 0x20
jae 0x140004c64
add rax, rax
add rax, 0x29
mov rdx, rax
mov rcx, r8
call fcn.140016e54
mov eax, dword [rbp + 0x28]
sub eax, dword [rbp + 0x20]
mov dword [rbp + 0x44], eax
cmp byte [0x1400d46d0], 0
jne 0x1400046cc
xor ecx, ecx
call fcn.140089660
mov ecx, eax
call fcn.14008f854
mov byte [0x1400d46d0], 1
call fcn.14008f86c
cdqe
imul rcx, rax, 0xffffffff81020409
shr rcx, 0x20
add ecx, eax
mov edx, ecx
shr edx, 0x1f
shr ecx, 7
add ecx, edx
lea eax, [rax + rcx*2]
inc al
mov byte [rbp + 0x48], al
call fcn.14008f86c
cdqe
imul rcx, rax, 0xffffffff81020409
shr rcx, 0x20
add ecx, eax
mov edx, ecx
shr edx, 0x1f
shr ecx, 7
add ecx, edx
lea eax, [rax + rcx*2]
inc al
mov byte [rbp + 0x49], al
call fcn.14008f86c
cdqe
imul rcx, rax, 0xffffffff81020409
shr rcx, 0x20
add ecx, eax
mov edx, ecx
shr edx, 0x1f
shr ecx, 7
add ecx, edx
lea eax, [rax + rcx*2]
inc al
mov byte [rbp + 0x4a], al
call fcn.14008f86c
cdqe
imul rcx, rax, 0xffffffff81020409
shr rcx, 0x20
add ecx, eax
mov edx, ecx
shr edx, 0x1f
shr ecx, 7
add ecx, edx
lea eax, [rax + rcx*2]
inc al
mov byte [rbp + 0x4b], al
lea r14, [rbp + 0x40]
mov r8d, 0xc
mov rcx, rbx
mov rdx, r14
call fcn.140006760
mov rax, qword [rbp + 0x20]
mov rdx, qword [rbp + 0x28]
mov rcx, rdx
sub rcx, rax
je 0x1400047bf
cmp rcx, 8
jb 0x1400047b8
mov r8, rax
not r8
add r8, rdx
cmp r8, 3
ja 0x1400047b8
lea rdx, [rcx + r14]
add rdx, 8
cmp rax, rdx
jae 0x1400047c7
lea rdx, [rbp + 0x48]
lea r8, [rax + rcx]
cmp rdx, r8
jae 0x1400047c7
xor edx, edx
jmp 0x140004b06
mov r8, rdx
jmp 0x140004b61
cmp rcx, 0x10
jae 0x1400047d4
xor edx, edx
jmp 0x1400049d3
mov rdx, rcx
and rdx, 0xfffffffffffffff0
movdqu xmm0, xmmword [rbp + 0x48]
movdqa xmmword [rbp - 0x60], xmm0
xor r8d, r8d
pxor xmm1, xmm1
movdqa xmm2, xmmword [0x1400af640]
movdqa xmm3, xmmword [0x1400af650]
movdqa xmm4, xmmword [0x1400af660]
movdqa xmm5, xmmword [0x1400af670]
movdqa xmm6, xmmword [0x1400af680]
movdqa xmm7, xmmword [0x1400af690]
nop dword [rax]
movdqu xmm13, xmmword [rax + r8]
pxor xmm13, xmmword [rbp - 0x60]
movdqa xmm14, xmm13
punpckhbw xmm14, xmm1
movdqa xmm12, xmm14
movdqa xmm11, xmm14
punpcklbw xmm13, xmm1
movdqa xmm10, xmm13
movdqa xmm9, xmm13
movdqa xmm8, xmm13
pmulhuw xmm8, xmm2
pmullw xmm13, xmm2
movdqa xmm15, xmm13
punpcklwd xmm15, xmm8
punpckhwd xmm13, xmm8
movdqa xmm8, xmm14
pmulhuw xmm8, xmm2
pmullw xmm14, xmm2
movdqa xmm0, xmm14
punpcklwd xmm0, xmm8
punpckhwd xmm14, xmm8
punpckhwd xmm12, xmm1
pand xmm14, xmm3
pmaddwd xmm12, xmm4
pand xmm12, xmm5
por xmm12, xmm14
punpcklwd xmm11, xmm1
pand xmm0, xmm3
pmaddwd xmm11, xmm4
pand xmm11, xmm5
por xmm11, xmm0
punpckhwd xmm10, xmm1
pand xmm13, xmm3
pmaddwd xmm10, xmm4
pand xmm10, xmm5
por xmm10, xmm13
punpcklwd xmm9, xmm1
pand xmm15, xmm3
pmaddwd xmm9, xmm4
pand xmm9, xmm5
por xmm9, xmm15
pshufd xmm0, xmm12, 0xf5
pmuludq xmm12, xmm6
pshufd xmm12, xmm12, 0xe8
pmuludq xmm0, xmm6
pshufd xmm0, xmm0, 0xe8
punpckldq xmm12, xmm0
pshufd xmm0, xmm11, 0xf5
pmuludq xmm11, xmm6
pshufd xmm11, xmm11, 0xe8
pmuludq xmm0, xmm6
pshufd xmm0, xmm0, 0xe8
punpckldq xmm11, xmm0
pshufd xmm0, xmm10, 0xf5
pmuludq xmm10, xmm6
pshufd xmm10, xmm10, 0xe8
pmuludq xmm0, xmm6
pshufd xmm0, xmm0, 0xe8
punpckldq xmm10, xmm0
pshufd xmm0, xmm9, 0xf5
pmuludq xmm9, xmm6
pshufd xmm8, xmm9, 0xe8
pmuludq xmm0, xmm6
pshufd xmm0, xmm0, 0xe8
punpckldq xmm8, xmm0
psrld xmm11, 0x10
psrld xmm12, 0x10
pand xmm12, xmm7
pand xmm11, xmm7
packuswb xmm11, xmm12
psrld xmm8, 0x10
psrld xmm10, 0x10
pand xmm10, xmm7
pand xmm8, xmm7
packuswb xmm8, xmm10
packuswb xmm8, xmm11
paddb xmm8, xmmword [str.vvvvvvvvvvvvvvvvvvvvvvvv]
movdqu xmmword [rax + r8], xmm8
add r8, 0x10
cmp rdx, r8
jne 0x140004820
cmp rcx, rdx
je 0x140004b59
test cl, 8
je 0x140004b06
mov r8, rdx
mov rdx, rcx
and rdx, 0xfffffffffffffff8
movq xmm0, qword [rbp + 0x48]
pxor xmm1, xmm1
movdqa xmm2, xmmword [0x1400af640]
movdqa xmm3, xmmword [0x1400af650]
movdqa xmm4, xmmword [0x1400af660]
movdqa xmm5, xmmword [0x1400af670]
movdqa xmm6, xmmword [0x1400af680]
movdqa xmm7, xmmword [0x1400af690]
movdqa xmm8, xmmword [0x1400af6b0]
nop
movq xmm10, qword [rax + r8]
pxor xmm10, xmm0
punpcklbw xmm10, xmm1
movdqa xmm11, xmm10
punpckhwd xmm11, xmm1
movdqa xmm9, xmm10
punpcklwd xmm9, xmm1
movdqa xmm12, xmm10
pmulhuw xmm12, xmm2
pmullw xmm10, xmm2
movdqa xmm13, xmm10
punpcklwd xmm13, xmm12
punpckhwd xmm10, xmm12
pand xmm10, xmm3
pand xmm13, xmm3
pmaddwd xmm9, xmm4
pmaddwd xmm11, xmm4
pand xmm11, xmm5
por xmm11, xmm10
pand xmm9, xmm5
por xmm9, xmm13
pshufd xmm10, xmm11, 0xf5
pmuludq xmm11, xmm6
pshufd xmm11, xmm11, 0xe8
pmuludq xmm10, xmm6
pshufd xmm10, xmm10, 0xe8
punpckldq xmm11, xmm10
pshufd xmm10, xmm9, 0xf5
pmuludq xmm9, xmm6
pshufd xmm9, xmm9, 0xe8
pmuludq xmm10, xmm6
pshufd xmm10, xmm10, 0xe8
punpckldq xmm9, xmm10
psrld xmm9, 0x10
psrld xmm11, 0x10
pand xmm11, xmm7
pand xmm9, xmm7
packuswb xmm9, xmm11
packuswb xmm9, xmm9
paddb xmm9, xmm8
movq qword [rax + r8], xmm9
add r8, 8
cmp rdx, r8
jne 0x140004a20
jmp 0x140004b54
mov r8d, edx
and r8d, 3
movzx r8d, byte [rbp + r8 + 0x48]
xor r8b, byte [rax + rdx]
movzx r8d, r8b
imul r9d, r8d, 0x8020
and r9d, 0x88440
mov r10d, r8d
shl r10d, 0xb
lea r8d, [r10 + r8*2]
and r8d, 0x22110
or r8d, r9d
imul r8d, r8d, 0x10101
shr r8d, 0x10
add r8b, 0x76
mov byte [rax + rdx], r8b
inc rdx
cmp rcx, rdx
jne 0x140004b06
mov rdx, qword [rbp + 0x20]
mov r8, qword [rbp + 0x28]
sub r8, rdx
mov rcx, rbx
call fcn.140006760
inc dword [rdi + 4]
mov rcx, qword [rbp + 0x20]
test rcx, rcx
mov rdi, qword [rbp - 0x28]
je 0x140004bad
mov rdx, qword [rbp + 0x30]
sub rdx, rcx
cmp rdx, 0x1000
jb 0x140004ba8
mov rax, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, rax
cmp rcx, 0x20
jae 0x140004c64
add rdx, 0x27
mov rcx, rax
call fcn.140016e54
mov rax, qword [rdi + 0x38]
cmp rax, 8
jb 0x140004bf2
mov rcx, qword [rsi]
lea rdx, [rax*2 + 2]
cmp rdx, 0x1000
jb 0x140004bed
mov r8, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r8
cmp rcx, 0x20
jae 0x140004c64
add rax, rax
add rax, 0x29
mov rdx, rax
mov rcx, r8
call fcn.140016e54
mov qword [rdi + 0x30], 0
mov qword [rdi + 0x38], 7
mov word [rdi + 0x20], 0
movaps xmm6, xmmword [rbp + 0x60]
movaps xmm7, xmmword [rbp + 0x70]
movaps xmm8, xmmword [rbp + 0x80]
movaps xmm9, xmmword [rbp + 0x90]
movaps xmm10, xmmword [rbp + 0xa0]
movaps xmm11, xmmword [rbp + 0xb0]
movaps xmm12, xmmword [rbp + 0xc0]
movaps xmm13, xmmword [rbp + 0xd0]
movaps xmm14, xmmword [rbp + 0xe0]
movaps xmm15, xmmword [rbp + 0xf0]
add rsp, 0x188
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
call fcn.140087f50
int3