Function at 0x14005c100
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, 0x158
lea rbp, [rsp + 0x80]
movdqa xmmword [rbp + 0xc0], xmm8
movdqa xmmword [rbp + 0xb0], xmm7
movdqa xmmword [rbp + 0xa0], xmm6
mov qword [rbp + 0x98], 0xfffffffffffffffe
mov rax, qword [rcx]
cmp byte [rax], 0x1b
jne 0x14005ccd0
mov rax, qword [rcx + 8]
mov r11, qword [rax]
test r8, r8
mov qword [rbp + 0x80], r8
mov qword [rbp + 0x90], rcx
mov qword [rbp + 0x78], r9
je 0x14005c196
lea rcx, [r8 - 1]
mov r10d, r8d
and r10d, 7
movabs rax, 0x100000001b3
cmp rcx, 7
jae 0x14005c1a5
movabs rsi, 0xcbf29ce484222325
mov rcx, rdx
jmp 0x14005c221
movabs rdi, 0xaf64724c8602eb6e
jmp 0x14005c252
mov rbx, r8
and rbx, 0xfffffffffffffff8
neg rbx
movabs rsi, 0xcbf29ce484222325
mov rcx, rdx
nop dword [rax]
movzx edi, byte [rcx]
xor rdi, rsi
imul rdi, rax
movzx esi, byte [rcx + 1]
xor rsi, rdi
imul rsi, rax
movzx edi, byte [rcx + 2]
xor rdi, rsi
imul rdi, rax
movzx esi, byte [rcx + 3]
xor rsi, rdi
imul rsi, rax
movzx edi, byte [rcx + 4]
xor rdi, rsi
imul rdi, rax
movzx esi, byte [rcx + 5]
xor rsi, rdi
imul rsi, rax
movzx edi, byte [rcx + 6]
xor rdi, rsi
imul rdi, rax
movzx esi, byte [rcx + 7]
add rcx, 8
xor rsi, rdi
imul rsi, rax
add rbx, 8
jne 0x14005c1c0
mov rdi, rsi
test r10, r10
je 0x14005c247
xor ebx, ebx
nop dword [rax + rax]
movzx edi, byte [rcx + rbx]
xor rdi, rsi
imul rdi, rax
add rbx, 1
mov rsi, rdi
cmp r10, rbx
jne 0x14005c230
xor rdi, 0xff
imul rdi, rax
mov qword [rbp + 0x88], rdx
mov rsi, qword [r11 + 0xc8]
mov r12, qword [r11 + 0xd0]
mov rbx, rsi
and rbx, rdi
shr rdi, 0x39
movdqu xmm7, xmmword [r12 + rbx]
movd xmm0, edi
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm6, xmm0, 0
movdqa xmm0, xmm6
pcmpeqb xmm0, xmm7
pmovmskb r14d, xmm0
xor r15d, r15d
test r14w, r14w
je 0x14005c3ec
mov r13, r11
pcmpeqd xmm8, xmm8
bsf ax, r14w
movzx eax, ax
add rax, rbx
and rax, rsi
neg rax
lea rdi, [rax + rax*2]
shl rdi, 4
mov r8, qword [rbp + 0x80]
cmp qword [r12 + rdi - 0x20], r8
jne 0x14005c2e7
mov rdx, qword [r12 + rdi - 0x30]
mov rcx, qword [rbp + 0x88]
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
je 0x14005c337
lea eax, [r14 - 1]
and eax, r14d
mov r14d, eax
test ax, ax
jne 0x14005c2ab
pcmpeqb xmm7, xmm8
pmovmskb eax, xmm7
test ax, ax
mov r11, r13
jne 0x14005c429
add rbx, r15
add rbx, 0x10
add r15, 0x10
and rbx, rsi
movdqu xmm7, xmmword [r12 + rbx]
movdqa xmm0, xmm6
pcmpeqb xmm0, xmm7
pmovmskb r14d, xmm0
test r14w, r14w
je 0x14005c2f6
jmp 0x14005c2ab
lea rbx, [r12 + rdi]
add rbx, 0xfffffffffffffffc
mov rsi, qword [rbp + 0x78]
mov rcx, rsi
mov rdx, rbx
call fcn.1400d0220
test al, al
je 0x14005c45d
mov r14, qword [rbp + 0x90]
mov rax, qword [r14 + 8]
mov rcx, qword [r14 + 0x10]
mov rdx, qword [rcx]
mov r9, qword [rax]
mov eax, dword [r12 + rdi - 8]
mov rcx, qword [r14 + 0x18]
mov rbx, qword [rbp + 0x80]
mov qword [rsp + 0x38], rbx
mov rbx, qword [rbp + 0x88]
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x28], rcx
mov dword [rsp + 0x20], eax
lea rcx, [rbp - 0x10]
mov r8, rsi
call fcn.14008afb0
cmp byte [rbp - 0x10], 0x1b
je 0x14005ccd0
mov rcx, qword [r14]
call fcn.14005b490
mov rax, qword [rbp + 0x90]
mov rax, qword [rax]
mov rcx, qword [rbp + 0x50]
mov qword [rax + 0x60], rcx
movups xmm0, xmmword [rbp + 0x40]
movups xmmword [rax + 0x50], xmm0
movups xmm0, xmmword [rbp + 0x30]
movups xmmword [rax + 0x40], xmm0
movdqu xmm0, xmmword [rbp - 0x10]
movdqu xmm1, xmmword [rbp]
movups xmm2, xmmword [rbp + 0x10]
movups xmm3, xmmword [rbp + 0x20]
jmp 0x14005cc76
pcmpeqd xmm0, xmm0
pcmpeqb xmm7, xmm0
pmovmskb eax, xmm7
test ax, ax
jne 0x14005c429
add rbx, r15
add rbx, 0x10
add r15, 0x10
and rbx, rsi
movdqu xmm7, xmmword [r12 + rbx]
movdqa xmm1, xmm6
pcmpeqb xmm1, xmm7
pmovmskb r14d, xmm1
test r14w, r14w
je 0x14005c3f0
jmp 0x14005c2a3
mov rdx, qword [rbp + 0x80]
test rdx, rdx
je 0x14005c4a0
lea rcx, [rdx - 1]
mov eax, edx
and eax, 7
cmp rcx, 7
mov r10, qword [rbp + 0x88]
jae 0x14005c4b6
movabs rdi, 0xcbf29ce484222325
mov rcx, r10
jmp 0x14005c541
mov rdi, qword [rbp + 0x80]
test rdi, rdi
mov rsi, qword [rbp + 0x90]
mov r14, qword [rbp + 0x88]
je 0x14005c738
mov edx, 1
mov rcx, rdi
call fcn.1400012e0
test rax, rax
jne 0x14005c73d
mov edx, 1
mov rcx, rdi
call fcn.14019e1f0
ud2
movabs rax, 0xaf64724c8602eb6e
mov r10, qword [rbp + 0x88]
jmp 0x14005c58c
and rdx, 0xfffffffffffffff8
neg rdx
movabs rdi, 0xcbf29ce484222325
movabs rbx, 0x100000001b3
mov rcx, r10
nop word cs:[rax + rax]
nop
movzx esi, byte [rcx]
xor rsi, rdi
imul rsi, rbx
movzx edi, byte [rcx + 1]
xor rdi, rsi
imul rdi, rbx
movzx esi, byte [rcx + 2]
xor rsi, rdi
imul rsi, rbx
movzx edi, byte [rcx + 3]
xor rdi, rsi
imul rdi, rbx
movzx esi, byte [rcx + 4]
xor rsi, rdi
imul rsi, rbx
movzx edi, byte [rcx + 5]
xor rdi, rsi
imul rdi, rbx
movzx esi, byte [rcx + 6]
xor rsi, rdi
imul rsi, rbx
movzx edi, byte [rcx + 7]
add rcx, 8
xor rdi, rsi
imul rdi, rbx
add rdx, 8
jne 0x14005c4e0
mov rdx, rdi
test rax, rax
je 0x14005c577
xor ebx, ebx
movabs rsi, 0x100000001b3
nop word cs:[rax + rax]
nop
movzx edx, byte [rcx + rbx]
xor rdx, rdi
imul rdx, rsi
add rbx, 1
mov rdi, rdx
cmp rax, rbx
jne 0x14005c560
xor rdx, 0xff
movabs rax, 0x100000001b3
imul rax, rdx
mov rcx, qword [r11 + 0xe8]
mov r12, qword [r11 + 0xf0]
mov rsi, rcx
and rsi, rax
shr rax, 0x39
movdqu xmm7, xmmword [r12 + rsi]
movd xmm0, eax
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm6, xmm0, 0
movdqa xmm0, xmm6
pcmpeqb xmm0, xmm7
pmovmskb ebx, xmm0
xor edx, edx
test bx, bx
je 0x14005c6cc
mov qword [rbp + 0x70], rdx
mov qword [rbp + 0x68], r11
pcmpeqd xmm8, xmm8
mov r15, qword [rbp + 0x80]
bsf ax, bx
movzx eax, ax
add rax, rsi
mov r13, rcx
and rax, rcx
neg rax
lea rdi, [rax + rax*8]
cmp qword [r12 + rdi*8 - 0x38], r15
jne 0x14005c61f
mov rdx, qword [r12 + rdi*8 - 0x48]
mov rcx, r10
mov r8, r15
mov r14, r10
call sub.VCRUNTIME140.dll_memcmp
mov r10, r14
test eax, eax
je 0x14005c676
lea eax, [rbx - 1]
and eax, ebx
mov ebx, eax
test ax, ax
mov rcx, r13
jne 0x14005c5e7
pcmpeqb xmm7, xmm8
pmovmskb eax, xmm7
test ax, ax
mov r11, qword [rbp + 0x68]
mov rax, qword [rbp + 0x70]
jne 0x14005c707
add rsi, rax
add rsi, 0x10
add rax, 0x10
mov qword [rbp + 0x70], rax
and rsi, rcx
movdqu xmm7, xmmword [r12 + rsi]
movdqa xmm0, xmm6
pcmpeqb xmm0, xmm7
pmovmskb ebx, xmm0
test bx, bx
je 0x14005c62e
jmp 0x14005c5e7
lea r9, [r12 + rdi*8]
add r9, 0xffffffffffffffd0
mov rsi, qword [rbp + 0x90]
mov rax, qword [rsi + 0x10]
mov rcx, qword [rsi + 0x20]
mov rdx, qword [rax]
mov qword [rsp + 0x38], r15
mov qword [rsp + 0x30], r10
mov qword [rsp + 0x28], rcx
mov rax, qword [rbp + 0x68]
mov qword [rsp + 0x20], rax
lea rcx, [rbp - 0x10]
mov r8, qword [rbp + 0x78]
call fcn.14008bd60
cmp dword [rbp - 0x10], 1
jne 0x14005cc89
mov rcx, qword [rsi]
call fcn.14005b490
jmp 0x14005cc41
pcmpeqd xmm0, xmm0
pcmpeqb xmm7, xmm0
pmovmskb eax, xmm7
test ax, ax
jne 0x14005c707
add rsi, rdx
add rsi, 0x10
add rdx, 0x10
and rsi, rcx
movdqu xmm7, xmmword [r12 + rsi]
movdqa xmm1, xmm6
pcmpeqb xmm1, xmm7
pmovmskb ebx, xmm1
test bx, bx
je 0x14005c6d0
jmp 0x14005c5d3
mov rdx, qword [rbp + 0x80]
test rdx, rdx
je 0x14005c791
lea rcx, [rdx - 1]
mov eax, edx
and eax, 7
cmp rcx, 7
mov r8, qword [rbp + 0x78]
jae 0x14005c7a4
movabs rdi, 0xcbf29ce484222325
mov rcx, r10
jmp 0x14005c831
mov eax, 1
mov qword [rbp + 0x78], rax
mov rcx, rax
mov rdx, r14
mov r8, rdi
call sub.VCRUNTIME140.dll_memcpy
mov al, byte [rbx]
mov byte [rbp + 0x88], al
mov rcx, qword [rsi]
call fcn.14005b490
mov rax, qword [rbp + 0x90]
mov rax, qword [rax]
mov byte [rax], 5
mov cl, byte [rbp + 0x88]
mov byte [rax + 1], cl
mov rcx, qword [rbp + 0x78]
mov qword [rax + 8], rcx
mov rcx, qword [rbp + 0x80]
mov qword [rax + 0x10], rcx
mov qword [rax + 0x18], rcx
jmp 0x14005ccd0
movabs rax, 0xaf64724c8602eb6e
mov r8, qword [rbp + 0x78]
jmp 0x14005c87c
and rdx, 0xfffffffffffffff8
neg rdx
movabs rdi, 0xcbf29ce484222325
movabs rbx, 0x100000001b3
mov rcx, r10
nop word cs:[rax + rax]
nop dword [rax]
movzx esi, byte [rcx]
xor rsi, rdi
imul rsi, rbx
movzx edi, byte [rcx + 1]
xor rdi, rsi
imul rdi, rbx
movzx esi, byte [rcx + 2]
xor rsi, rdi
imul rsi, rbx
movzx edi, byte [rcx + 3]
xor rdi, rsi
imul rdi, rbx
movzx esi, byte [rcx + 4]
xor rsi, rdi
imul rsi, rbx
movzx edi, byte [rcx + 5]
xor rdi, rsi
imul rdi, rbx
movzx esi, byte [rcx + 6]
xor rsi, rdi
imul rsi, rbx
movzx edi, byte [rcx + 7]
add rcx, 8
xor rdi, rsi
imul rdi, rbx
add rdx, 8
jne 0x14005c7d0
mov rdx, rdi
test rax, rax
je 0x14005c867
xor ebx, ebx
movabs rsi, 0x100000001b3
nop word cs:[rax + rax]
nop
movzx edx, byte [rcx + rbx]
xor rdx, rdi
imul rdx, rsi
add rbx, 1
mov rdi, rdx
cmp rax, rbx
jne 0x14005c850
xor rdx, 0xff
movabs rax, 0x100000001b3
imul rax, rdx
mov rcx, qword [r11 + 0x1a8]
mov r12, qword [r11 + 0x1b0]
mov rsi, rcx
and rsi, rax
shr rax, 0x39
movdqu xmm7, xmmword [r12 + rsi]
movd xmm0, eax
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm6, xmm0, 0
movdqa xmm0, xmm6
pcmpeqb xmm0, xmm7
pmovmskb ebx, xmm0
xor edi, edi
test bx, bx
je 0x14005c9c3
pcmpeqd xmm8, xmm8
mov qword [rbp + 0x68], rcx
mov r15, qword [rbp + 0x80]
mov r14, qword [rbp + 0x88]
mov qword [rbp + 0x70], rdi
mov r13, r11
bsf ax, bx
movzx eax, ax
add rax, rsi
and rax, rcx
neg rax
lea rdi, [rax + rax*8]
cmp qword [r12 + rdi*8 - 0x38], r15
jne 0x14005c910
mov rdx, qword [r12 + rdi*8 - 0x48]
mov rcx, r14
mov r8, r15
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
je 0x14005c971
lea eax, [rbx - 1]
and eax, ebx
mov ebx, eax
test ax, ax
mov r11, r13
mov rcx, qword [rbp + 0x68]
jne 0x14005c8de
mov rdx, qword [rbp + 0x88]
mov r8, qword [rbp + 0x78]
mov rdi, qword [rbp + 0x70]
pcmpeqb xmm7, xmm8
pmovmskb eax, xmm7
test ax, ax
mov r10, rdx
jne 0x14005c9fe
add rsi, rdi
add rsi, 0x10
add rdi, 0x10
and rsi, rcx
movdqu xmm7, xmmword [r12 + rsi]
movdqa xmm0, xmm6
pcmpeqb xmm0, xmm7
pmovmskb ebx, xmm0
test bx, bx
je 0x14005c932
jmp 0x14005c8da
lea r9, [r12 + rdi*8]
add r9, 0xffffffffffffffd0
mov rsi, qword [rbp + 0x90]
mov rax, qword [rsi + 0x10]
mov rcx, qword [rsi + 0x30]
mov rdx, qword [rax]
mov qword [rsp + 0x38], r15
mov qword [rsp + 0x30], r14
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x20], r13
lea rcx, [rbp - 0x10]
mov r8, qword [rbp + 0x78]
call fcn.14008cf60
cmp dword [rbp - 0x10], 1
jne 0x14005cc89
mov rcx, qword [rsi]
call fcn.14005b490
jmp 0x14005cc41
pcmpeqd xmm0, xmm0
pcmpeqb xmm7, xmm0
pmovmskb eax, xmm7
test ax, ax
jne 0x14005c9fe
add rsi, rdi
add rsi, 0x10
add rdi, 0x10
and rsi, rcx
movdqu xmm7, xmmword [r12 + rsi]
movdqa xmm1, xmm6
pcmpeqb xmm1, xmm7
pmovmskb ebx, xmm1
test bx, bx
je 0x14005c9c7
jmp 0x14005c8c3
mov rdx, qword [rbp + 0x80]
test rdx, rdx
je 0x14005ca2b
lea rcx, [rdx - 1]
mov eax, edx
and eax, 7
cmp rcx, 7
jae 0x14005ca3a
movabs rdi, 0xcbf29ce484222325
mov rcx, r10
jmp 0x14005cac1
movabs rax, 0xaf64724c8602eb6e
jmp 0x14005cb0c
and rdx, 0xfffffffffffffff8
neg rdx
movabs rdi, 0xcbf29ce484222325
movabs rbx, 0x100000001b3
mov rcx, r10
nop dword [rax + rax]
movzx esi, byte [rcx]
xor rsi, rdi
imul rsi, rbx
movzx edi, byte [rcx + 1]
xor rdi, rsi
imul rdi, rbx
movzx esi, byte [rcx + 2]
xor rsi, rdi
imul rsi, rbx
movzx edi, byte [rcx + 3]
xor rdi, rsi
imul rdi, rbx
movzx esi, byte [rcx + 4]
xor rsi, rdi
imul rsi, rbx
movzx edi, byte [rcx + 5]
xor rdi, rsi
imul rdi, rbx
movzx esi, byte [rcx + 6]
xor rsi, rdi
imul rsi, rbx
movzx edi, byte [rcx + 7]
add rcx, 8
xor rdi, rsi
imul rdi, rbx
add rdx, 8
jne 0x14005ca60
mov rdx, rdi
test rax, rax
je 0x14005caf7
xor ebx, ebx
movabs rsi, 0x100000001b3
nop word cs:[rax + rax]
nop
movzx edx, byte [rcx + rbx]
xor rdx, rdi
imul rdx, rsi
add rbx, 1
mov rdi, rdx
cmp rax, rbx
jne 0x14005cae0
xor rdx, 0xff
movabs rax, 0x100000001b3
imul rax, rdx
mov rcx, qword [r11 + 0x1c8]
mov r12, qword [r11 + 0x1d0]
mov rsi, rcx
and rsi, rax
shr rax, 0x39
movdqu xmm7, xmmword [r12 + rsi]
movd xmm0, eax
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm6, xmm0, 0
movdqa xmm0, xmm6
pcmpeqb xmm0, xmm7
pmovmskb ebx, xmm0
xor edi, edi
test bx, bx
je 0x14005ccfa
pcmpeqd xmm8, xmm8
mov qword [rbp + 0x68], rcx
mov r15, qword [rbp + 0x80]
mov r14, qword [rbp + 0x88]
mov qword [rbp + 0x70], rdi
mov r13, r11
bsf ax, bx
movzx eax, ax
add rax, rsi
and rax, rcx
neg rax
lea rdi, [rax + rax*8]
cmp qword [r12 + rdi*8 - 0x38], r15
jne 0x14005cba0
mov rdx, qword [r12 + rdi*8 - 0x48]
mov rcx, r14
mov r8, r15
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
je 0x14005cc01
lea eax, [rbx - 1]
and eax, ebx
mov ebx, eax
test ax, ax
mov r11, r13
mov rcx, qword [rbp + 0x68]
jne 0x14005cb6e
mov rdx, qword [rbp + 0x88]
mov r8, qword [rbp + 0x78]
mov rdi, qword [rbp + 0x70]
pcmpeqb xmm7, xmm8
pmovmskb eax, xmm7
test ax, ax
mov r10, rdx
jne 0x14005cd35
add rsi, rdi
add rsi, 0x10
add rdi, 0x10
and rsi, rcx
movdqu xmm7, xmmword [r12 + rsi]
movdqa xmm0, xmm6
pcmpeqb xmm0, xmm7
pmovmskb ebx, xmm0
test bx, bx
je 0x14005cbc2
jmp 0x14005cb6a
lea r9, [r12 + rdi*8]
add r9, 0xffffffffffffffd0
mov rsi, qword [rbp + 0x90]
mov rax, qword [rsi + 0x10]
mov rdx, qword [rax]
mov qword [rsp + 0x30], r15
mov qword [rsp + 0x28], r14
mov qword [rsp + 0x20], r13
lea rcx, [rbp - 0x10]
mov r8, qword [rbp + 0x78]
call fcn.14008c0d0
cmp dword [rbp - 0x10], 1
jne 0x14005cc89
mov rcx, qword [rsi]
call fcn.14005b490
mov rax, qword [rbp + 0x90]
mov rax, qword [rax]
lea rdx, [rbp - 8]
mov rcx, qword [rdx + 0x60]
mov qword [rax + 0x60], rcx
movups xmm0, xmmword [rdx + 0x50]
movups xmmword [rax + 0x50], xmm0
movups xmm0, xmmword [rdx + 0x40]
movups xmmword [rax + 0x40], xmm0
movups xmm0, xmmword [rdx]
movups xmm1, xmmword [rdx + 0x10]
movups xmm2, xmmword [rdx + 0x20]
movups xmm3, xmmword [rdx + 0x30]
movups xmmword [rax + 0x30], xmm3
movups xmmword [rax + 0x20], xmm2
movdqu xmmword [rax + 0x10], xmm1
movdqu xmmword [rax], xmm0
jmp 0x14005ccd0
mov rdi, qword [rbp - 8]
movups xmm0, xmmword [rbp]
movaps xmmword [rbp - 0x30], xmm0
test rdi, rdi
je 0x14005ccd0
mov rax, qword [rsi + 0x28]
mov rsi, qword [rax]
movaps xmm0, xmmword [rbp - 0x30]
movaps xmmword [rbp - 0x10], xmm0
mov rdx, qword [rsi + 0x10]
cmp qword [rsi + 8], rdx
je 0x14005cd7e
mov rax, qword [rsi]
lea rcx, [rdx + rdx*2]
mov qword [rax + rcx*8], rdi
movaps xmm0, xmmword [rbp - 0x10]
movups xmmword [rax + rcx*8 + 8], xmm0
add qword [rsi + 0x10], 1
movaps xmm6, xmmword [rbp + 0xa0]
movaps xmm7, xmmword [rbp + 0xb0]
movaps xmm8, xmmword [rbp + 0xc0]
add rsp, 0x158
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
pcmpeqd xmm0, xmm0
pcmpeqb xmm7, xmm0
pmovmskb eax, xmm7
test ax, ax
jne 0x14005cd35
add rsi, rdi
add rsi, 0x10
add rdi, 0x10
and rsi, rcx
movdqu xmm7, xmmword [r12 + rsi]
movdqa xmm1, xmm6
pcmpeqb xmm1, xmm7
pmovmskb ebx, xmm1
test bx, bx
je 0x14005ccfe
jmp 0x14005cb53
cmp byte [r8], 1
mov rdi, qword [rbp + 0x80]
jne 0x14005ccd0
mov r13, r11
mov r12b, byte [r8 + 1]
mov rax, qword [r8 + 8]
mov qword [rbp + 0x68], rax
mov rax, qword [r8 + 0x10]
mov qword [rbp + 0x70], rax
test rdi, rdi
je 0x14005cd95
mov edx, 1
mov rcx, rdi
mov rbx, r10
call fcn.1400012e0
mov r10, rbx
mov r15, rax
test rax, rax
jne 0x14005cd9b
jmp 0x14005c491
mov r8d, 1
mov rcx, rsi
call fcn.140190dc0
mov rdx, qword [rsi + 0x10]
jmp 0x14005ccb7
mov r15d, 1
movzx r14d, r12b
mov rcx, r15
mov rdx, r10
mov r8, rdi
call sub.VCRUNTIME140.dll_memcpy
mov qword [rbp - 0x30], r15
mov qword [rbp - 0x28], rdi
mov qword [rbp - 0x20], rdi
mov byte [rbp - 0x18], r14b
test rdi, rdi
mov byte [rbp + 0x88], r12b
je 0x14005cded
lea rcx, [rdi - 1]
mov eax, edi
and eax, 7
cmp rcx, 7
mov r8, r13
jae 0x14005cdff
movabs rdi, 0xcbf29ce484222325
mov rcx, r15
jmp 0x14005ce81
movabs rax, 0xaf64724c8602eb6e
mov r8, r13
jmp 0x14005cec1
mov rdx, rdi
and rdx, 0xfffffffffffffff8
neg rdx
movabs rdi, 0xcbf29ce484222325
movabs rbx, 0x100000001b3
mov rcx, r15
movzx esi, byte [rcx]
xor rsi, rdi
imul rsi, rbx
movzx edi, byte [rcx + 1]
xor rdi, rsi
imul rdi, rbx
movzx esi, byte [rcx + 2]
xor rsi, rdi
imul rsi, rbx
movzx edi, byte [rcx + 3]
xor rdi, rsi
imul rdi, rbx
movzx esi, byte [rcx + 4]
xor rsi, rdi
imul rsi, rbx
movzx edi, byte [rcx + 5]
xor rdi, rsi
imul rdi, rbx
movzx esi, byte [rcx + 6]
xor rsi, rdi
imul rsi, rbx
movzx edi, byte [rcx + 7]
add rcx, 8
xor rdi, rsi
imul rdi, rbx
add rdx, 8
jne 0x14005ce20
mov rdx, rdi
test rax, rax
je 0x14005ceac
xor ebx, ebx
movabs rsi, 0x100000001b3
movzx edx, byte [rcx + rbx]
xor rdx, rdi
imul rdx, rsi
add rbx, 1
mov rdi, rdx
cmp rax, rbx
jne 0x14005ce95
xor rdx, 0xff
movabs rax, 0x100000001b3
imul rax, rdx
xor rax, r14
movabs rcx, 0x1efac7090aef4a21
imul rax, rcx
mov rsi, qword [r8 + 0x128]
mov r12, qword [r8 + 0x130]
mov rbx, rsi
and rbx, rax
shr rax, 0x39
movdqu xmm7, xmmword [r12 + rbx]
movd xmm0, eax
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm6, xmm0, 0
movdqa xmm0, xmm6
pcmpeqb xmm0, xmm7
pmovmskb edi, xmm0
test di, di
mov qword [rbp + 0x78], r14
je 0x14005d1a0
xor edx, edx
mov r14, r15
pcmpeqd xmm8, xmm8
mov qword [rbp - 0x38], rdx
mov r15, rcx
bsf ax, di
movzx eax, ax
add rax, rbx
and rax, rsi
neg rax
lea r13, [rax + rax*4]
shl r13, 4
mov rax, qword [rbp + 0x80]
cmp qword [r12 + r13 - 0x40], rax
jne 0x14005cf78
mov rdx, qword [r12 + r13 - 0x50]
mov rcx, r14
mov r8, qword [rbp + 0x80]
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
jne 0x14005cf78
movzx eax, byte [rbp + 0x88]
cmp al, byte [r12 + r13 - 0x38]
je 0x14005cfca
lea eax, [rdi - 1]
and eax, edi
mov edi, eax
test ax, ax
jne 0x14005cf2c
mov rcx, r15
mov rdx, qword [rbp - 0x38]
pcmpeqb xmm7, xmm8
pmovmskb eax, xmm7
test ax, ax
mov r15, r14
jne 0x14005d17d
add rbx, rdx
add rbx, 0x10
add rdx, 0x10
and rbx, rsi
movdqu xmm7, xmmword [r12 + rbx]
movdqa xmm0, xmm6
pcmpeqb xmm0, xmm7
pmovmskb edi, xmm0
test di, di
je 0x14005cf8b
jmp 0x14005cf25
mov rax, qword [rbp + 0x90]
mov rbx, qword [rax + 0x38]
movabs rsi, 0xcbf29ce484222325
xor rsi, qword [rbp + 0x78]
imul rsi, r15
mov rdi, rsi
shr rdi, 0x39
mov rax, qword [rbx]
and rax, rsi
mov rcx, qword [rbx + 8]
movdqu xmm0, xmmword [rcx + rax]
movd xmm1, edi
punpcklbw xmm1, xmm1
pshuflw xmm1, xmm1, 0
pshufd xmm6, xmm1, 0
movdqa xmm1, xmm6
pcmpeqb xmm1, xmm0
pmovmskb ecx, xmm1
movdqa xmmword [rbp - 0x10], xmm0
mov qword [rbp], rbx
mov qword [rbp + 8], rax
mov qword [rbp + 0x10], 0
mov word [rbp + 0x18], cx
mov byte [rbp + 0x1a], dil
lea rcx, [rbp - 0x10]
call fcn.140072a30
mov r15, r14
test rax, rax
je 0x14005d066
lea r14, [rbp - 0x10]
movzx ecx, byte [rbp + 0x88]
cmp byte [rax - 0x20], cl
je 0x14005d0ae
mov rcx, r14
call fcn.140072a30
test rax, rax
jne 0x14005d04d
cmp qword [rbx + 0x10], 0
jne 0x14005d082
lea rcx, [rbp - 0x10]
mov r8d, 1
mov rdx, rbx
mov r9, rbx
call fcn.140192bc0
mov rax, qword [0x1401b32a0]
mov qword [rbp - 8], rax
pxor xmm0, xmm0
movdqu xmmword [rbp], xmm0
mov al, byte [rbp + 0x88]
mov byte [rbp - 0x10], al
lea r8, [rbp - 0x10]
mov rcx, rbx
mov rdx, rsi
call fcn.140072c10
mov rax, qword [rbp + 0x90]
mov rax, qword [rax + 0x38]
and rsi, qword [rax]
mov rcx, qword [rax + 8]
movdqu xmm0, xmmword [rcx + rsi]
pcmpeqb xmm6, xmm0
pmovmskb ecx, xmm6
movdqa xmmword [rbp - 0x10], xmm0
mov qword [rbp], rax
mov qword [rbp + 8], rsi
mov qword [rbp + 0x10], 0
mov word [rbp + 0x18], cx
mov byte [rbp + 0x1a], dil
lea rcx, [rbp - 0x10]
call fcn.140072a30
mov rsi, rax
test rax, rax
je 0x14005d123
lea rdi, [r12 + r13]
add rdi, 0xffffffffffffffd0
lea rbx, [rbp - 0x10]
movzx eax, byte [rbp + 0x88]
cmp al, byte [rsi - 0x20]
je 0x14005d13d
mov rcx, rbx
call fcn.140072a30
mov rsi, rax
test rax, rax
jne 0x14005d107
lea rcx, [0x1401b31e0]
lea r8, str.C:UsersAdministrator.cargo_registry_srcgithub.com_1ecc6299db9ec823glium_0.29.0_srcuniforms_bind.rsH3e_
mov edx, 0x2b
call fcn.14019e390
ud2
mov rdx, qword [rsi - 8]
cmp rdx, qword [rsi - 0x10]
jne 0x14005d15a
lea rcx, [rsi - 0x18]
mov r8d, 1
call fcn.140190dc0
mov rdx, qword [rsi - 8]
mov rax, qword [rsi - 0x18]
lea rcx, [rdx + rdx*2]
mov qword [rax + rcx*8], rdi
mov rdx, qword [rbp + 0x68]
mov qword [rax + rcx*8 + 8], rdx
mov rdx, qword [rbp + 0x70]
mov qword [rax + rcx*8 + 0x10], rdx
add qword [rsi - 8], 1
mov rdx, qword [rbp + 0x80]
test rdx, rdx
je 0x14005ccd0
mov r8d, 1
mov rcx, r15
call fcn.1400012f0
jmp 0x14005ccd0
xor edx, edx
pcmpeqd xmm0, xmm0
pcmpeqb xmm7, xmm0
pmovmskb eax, xmm7
test ax, ax
jne 0x14005d17d
add rbx, rdx
add rbx, 0x10
add rdx, 0x10
and rbx, rsi
movdqu xmm7, xmmword [r12 + rbx]
movdqa xmm1, xmm6
pcmpeqb xmm1, xmm7
pmovmskb edi, xmm1
test di, di
je 0x14005d1a6
jmp 0x14005cf1d