Function at 0x1400b84c0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x88
mov rsi, rcx
mov rax, qword [0x140327038]
xor rax, rsp
mov qword [rsp + 0x80], rax
mov r12, qword [0x14033b118]
cmp r12, 1
mov qword [rsp + 0x30], rcx
jbe 0x1400b900e
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x1400b8fcf
mov rax, qword [0x14033b118]
cmp rax, 1
jbe 0x1400b9055
mov r14, qword [0x14033b128]
test r14, r14
je 0x1400b909c
mov rbx, qword [rsi + 8]
mov dil, 1
test rbx, rbx
je 0x1400b8fef
mov rcx, rbx
call fcn.140164e30
test rax, rax
je 0x1400b8fef
mov r13, rax
and eax, 7
cmp r13, 8
jb 0x1400b8603
mov rdx, r13
and rdx, 0xfffffffffffffff8
xor r15d, r15d
mov rcx, rbx
nop
movsx r8, byte [rcx]
imul r9, r15, 0x83
add r9, r8
movsx r8, byte [rcx + 1]
imul r9, r9, 0x83
add r9, r8
movsx r8, byte [rcx + 2]
imul r9, r9, 0x83
add r9, r8
movsx r8, byte [rcx + 3]
imul r9, r9, 0x83
add r9, r8
movsx r8, byte [rcx + 4]
imul r9, r9, 0x83
add r9, r8
movsx r8, byte [rcx + 5]
imul r9, r9, 0x83
add r9, r8
movsx r8, byte [rcx + 6]
imul r9, r9, 0x83
add r9, r8
movsx r8, byte [rcx + 7]
imul r15, r9, 0x83
add r15, r8
add rcx, 8
add rdx, 0xfffffffffffffff8
jne 0x1400b8570
jmp 0x1400b8609
lea rbp, [rsi - 1]
and rbp, r15
jmp 0x1400b86b8
xor r15d, r15d
mov rcx, rbx
test rax, rax
je 0x1400b8627
xor edx, edx
movsx r8, byte [rcx + rdx]
imul r15, r15, 0x83
add r15, r8
inc rdx
cmp rax, rdx
jne 0x1400b8610
xor edi, edi
mov rsi, qword [r14 + 8]
movabs rcx, 0x5555555555555555
movabs r9, 0x3333333333333333
movabs r8, 0xf0f0f0f0f0f0f0f
movabs rdx, 0x101010101010101
test rsi, rsi
mov qword [rsp + 0x50], r12
je 0x1400b874e
mov dword [rsp + 0x48], edi
mov rax, rsi
shr rax, 1
and rax, rcx
mov rcx, rsi
sub rcx, rax
mov rax, rcx
and rax, r9
shr rcx, 2
and rcx, r9
add rcx, rax
mov rdi, rcx
shr rdi, 4
add rdi, rcx
and rdi, r8
imul rdi, rdx
shr rdi, 0x38
cmp rdi, 1
jbe 0x1400b85f7
mov rbp, r15
cmp r15, rsi
jb 0x1400b86b8
mov rax, r15
xor edx, edx
div rsi
mov rbp, rdx
mov rax, qword [r14]
mov rax, qword [rax + rbp*8]
test rax, rax
je 0x1400b8701
mov r12, qword [rax]
test r12, r12
je 0x1400b8701
lea rcx, [rsi - 1]
mov rax, qword [r12 + 8]
cmp rax, r15
je 0x1400b86f1
cmp edi, 1
jbe 0x1400b8749
cmp rax, rsi
jb 0x1400b86ec
xor edx, edx
div rsi
mov rax, rdx
cmp rax, rbp
jne 0x1400b8701
cmp qword [r12 + 0x18], r13
je 0x1400b875a
mov r12, qword [r12]
test r12, r12
jne 0x1400b86d0
mov ecx, 0x28
call fcn.14013a6b4
mov r12, rax
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], r13
mov qword [rax + 0x20], 0
mov qword [rax + 8], r15
mov qword [rax], 0
mov rax, qword [r14 + 0x18]
inc rax
jns 0x1400b879a
mov rcx, rax
shr rcx, 1
and eax, 1
or rax, rcx
cvtsi2ss xmm0, rax
addss xmm0, xmm0
jmp 0x1400b879f
and rax, rcx
jmp 0x1400b86ec
movabs rbp, 0xaaaaaaaaaaaaaaaa
jmp 0x1400b8701
mov rax, rbx
cmp byte [rsp + 0x48], 0
jne 0x1400b90ba
mov rbx, rcx
mov rcx, qword [r12 + 0x10]
mov rdx, rax
mov qword [rsp + 0x40], rax
mov r8, r13
call fcn.14013eeb0
test eax, eax
mov rcx, rbx
mov rbx, qword [rsp + 0x40]
jne 0x1400b86f8
mov rbp, qword [rsp + 0x30]
jmp 0x1400b8850
cvtsi2ss xmm0, rax
mov rcx, rsi
shr rcx, 1
mov eax, esi
and eax, 1
or rax, rcx
test rsi, rsi
jns 0x1400b87d8
cvtsi2ss xmm1, rax
addss xmm1, xmm1
jmp 0x1400b87dd
mov byte [rsp + 0x7f], r14b
mov r15, rsi
jmp 0x1400b88cb
mov rcx, qword [rax]
mov qword [r12], rcx
mov rbp, qword [rsp + 0x30]
jmp 0x1400b8849
cvtsi2ss xmm1, rsi
movss xmm2, dword [r14 + 0x20]
je 0x1400b8f1e
mulss xmm1, xmm2
ucomiss xmm0, xmm1
ja 0x1400b8f1e
mov rcx, qword [r14]
mov rax, qword [rcx + rbp*8]
test rax, rax
jne 0x1400b87ca
lea rax, [r14 + 0x10]
mov rdx, qword [r14 + 0x10]
mov qword [r12], rdx
mov qword [r14 + 0x10], r12
mov qword [rcx + rbp*8], rax
mov rax, qword [r12]
test rax, rax
mov rbp, qword [rsp + 0x30]
je 0x1400b884c
mov rax, qword [rax + 8]
lea rcx, [rsi - 1]
test rsi, rcx
je 0x1400b8f9c
cmp rax, rsi
jb 0x1400b8842
xor edx, edx
div rsi
mov rax, rdx
shl rax, 3
add rax, qword [r14]
mov qword [rax], r12
inc qword [r14 + 0x18]
mov rsi, qword [r12 + 0x20]
test rsi, rsi
jne 0x1400b8a75
mov qword [r12 + 0x20], rbp
test rbx, rbx
je 0x1400b90c7
mov r13, qword [0x14033b128]
movabs rdi, 0x7fffffffffffffef
mov rcx, rbx
call fcn.140164e30
cmp rax, rdi
ja 0x1400b8ffa
mov r14, rax
lea rsi, [rsp + 0x68]
cmp rax, 0x16
jbe 0x1400b87bd
mov r12, r14
or r12, 0xf
inc r12
mov rcx, r12
call fcn.14013a6b4
mov r15, rax
mov qword [rsp + 0x68], rax
add rdi, 0x11
or rdi, r12
mov qword [rsp + 0x78], rdi
mov qword [rsp + 0x70], r14
cmp r15, rbx
ja 0x1400b88df
mov rax, r14
add rax, r15
cmp rax, rbx
ja 0x1400b90f3
mov rcx, r15
mov rdx, rbx
mov r8, r14
call fcn.14013efb0
mov byte [r15 + r14], 0
movzx edi, byte [rsp + 0x7f]
mov r14d, edi
and r14d, 0x7f
test dil, dil
mov r12, qword [rsp + 0x68]
mov r15, rsi
cmovs r15, r12
cmovs r14, qword [rsp + 0x70]
cmp r14, 0x20
mov qword [rsp + 0x48], rdi
mov qword [rsp + 0x40], r12
jbe 0x1400b8a84
cmp r14, 0x40
ja 0x1400b8bf2
test dil, dil
mov rax, rsi
cmovs rax, r12
mov r8, qword [rax + 0x18]
mov r10, qword [r15 + r14 - 0x10]
lea rdx, [r10 + r14]
movabs rax, 0xc3a5c85c97cb3127
imul rdx, rax
add rdx, qword [r15]
lea r11, [rdx + r8]
rol r11, 0xc
mov rbx, rdx
rol rbx, 0x1b
movabs rcx, 0x9ae16a3b2f90404f
test dil, dil
jns 0x1400b9004
lea r9, [r12 + 8]
add rdx, qword [r9]
mov r9, rdx
rol r9, 0x39
test dil, dil
cmovs rsi, r12
mov rdi, qword [rsi + 0x10]
add rdx, rdi
mov r12, rdx
rol r12, 0x21
add r9, rbx
add rdi, qword [r15 + r14 - 0x20]
mov rsi, qword [r15 + r14 - 8]
add rsi, r8
lea rbx, [rsi + rdi]
rol rbx, 0xc
add r9, r11
mov r11, rdi
rol r11, 0x1b
add r9, r12
add rdi, qword [r15 + r14 - 0x18]
mov r12, rdi
rol r12, 0x39
add rdi, r10
add rsi, rdi
rol rdi, 0x21
add r11, r8
add r11, r12
add r11, rbx
add r11, rdi
add r11, rdx
imul r11, rcx
add rsi, r9
imul rsi, rax
add rsi, r11
mov rdx, rsi
shr rdx, 0x2f
xor rdx, rsi
imul rdx, rax
add rdx, r9
mov r12, rdx
shr r12, 0x2f
xor r12, rdx
imul r12, rcx
mov rdi, qword [r13 + 0x30]
test rdi, rdi
jne 0x1400b8b20
xor r13d, r13d
cmp byte [rsp + 0x48], 0
jns 0x1400b8a37
mov rcx, qword [rsp + 0x40]
call fcn.14013a6ac
test r13, r13
mov rdi, qword [rsp + 0x50]
jne 0x1400b8fdd
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov rcx, qword [rsp + 0x80]
xor rcx, rsp
call fcn.14013d520
mov rax, rbp
add rsp, 0x88
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
cmp rsi, rbp
mov rdi, qword [rsp + 0x50]
je 0x1400b8a45
jmp 0x1400b8fa4
cmp r14, 0x10
jbe 0x1400b8e56
movabs rcx, 0xb492b66fbe98f273
imul rcx, qword [r15]
test dil, dil
cmovs rsi, r12
mov rdx, qword [rsi + 8]
movabs rax, 0x9ae16a3b2f90404f
imul rax, qword [r15 + r14 - 8]
movabs r8, 0xc3a5c85c97cb3127
imul r8, qword [r15 + r14 - 0x10]
movabs r9, 0xc949d7c7509e6557
xor r9, rdx
rol r9, 0x2c
add r9, rcx
add r9, r14
sub rcx, rdx
rol rcx, 0x15
sub r9, rax
add rcx, r8
rol rax, 0x22
add rax, rcx
xor rax, r9
movabs rcx, 0x9ddfea08eb382d69
imul rax, rcx
xor r9, rax
shr rax, 0x2f
xor rax, r9
imul rax, rcx
mov r12, rax
shr r12, 0x2f
xor r12, rax
jmp 0x1400b8a12
mov rax, rdi
shr rax, 1
movabs rcx, 0x5555555555555555
and rax, rcx
mov rcx, rdi
sub rcx, rax
mov rax, rcx
movabs rdx, 0x3333333333333333
and rax, rdx
shr rcx, 2
and rcx, rdx
add rcx, rax
mov rsi, rcx
shr rsi, 4
add rsi, rcx
movabs rax, 0xf0f0f0f0f0f0f0f
and rsi, rax
movabs rax, 0x101010101010101
imul rsi, rax
shr rsi, 0x38
cmp rsi, 1
jbe 0x1400b8f0b
mov r8, r12
cmp r12, rdi
jb 0x1400b8b99
mov rax, r12
xor edx, edx
div rdi
mov r8, rdx
mov rax, qword [r13 + 0x28]
mov rax, qword [rax + r8*8]
test rax, rax
je 0x1400b8a23
mov rbx, qword [rax]
test rbx, rbx
je 0x1400b8a23
xor r13d, r13d
mov rax, qword [rbx + 8]
cmp r12, rax
je 0x1400b8ea7
cmp esi, 1
jbe 0x1400b8eff
cmp rax, rdi
jb 0x1400b8bdc
xor edx, edx
div rdi
mov rax, rdx
cmp rax, r8
jne 0x1400b8a26
mov rbx, qword [rbx]
test rbx, rbx
jne 0x1400b8bb9
jmp 0x1400b8a26
mov qword [rsp + 0x38], r13
movabs r13, 0xb492b66fbe98f273
movabs rdi, 0x9ddfea08eb382d69
mov r11, qword [r15 + r14 - 0x28]
mov rax, qword [r15 + r14 - 0x10]
mov rcx, qword [r15 + r14 - 0x38]
mov r8, qword [r15 + r14 - 0x30]
lea rdx, [rcx + rax]
mov r10, qword [r15 + r14 - 0x18]
lea rsi, [r8 + r14]
xor rsi, r10
imul rsi, rdi
mov r9, r10
xor r9, rsi
shr rsi, 0x2f
xor rsi, r9
imul rsi, rdi
mov r9, rsi
shr r9, 0x2f
xor r9, rsi
imul r9, rdi
mov rsi, qword [r15 + r14 - 0x40]
add rsi, r14
lea rbx, [rsi + r11]
add rbx, r9
rol rbx, 0x2b
add r8, rcx
add r8, rsi
mov rdi, r8
rol rdi, 0x14
add rdi, rsi
add rdi, rbx
add r8, r11
mov rcx, qword [r15 + r14 - 0x20]
add rcx, rdx
mov rbx, qword [r15 + r14 - 8]
add rcx, r13
lea r12, [rbx + r11]
add r12, rcx
rol r12, 0x2b
add r10, rax
add r10, rcx
mov rsi, r10
rol rsi, 0x14
add rsi, rcx
add rsi, r12
imul r11, r13
add r11, qword [r15]
add r10, rbx
lea rax, [r14 - 1]
and rax, 0xffffffffffffffc0
mov qword [rsp + 0x60], rax
xor r12d, r12d
mov rcx, r9
add r11, r8
add r11, rdx
mov rax, qword [r15 + r12 + 8]
mov r13, qword [r15 + r12 + 0x10]
add r11, rax
rol r11, 0x1b
add rdx, rdi
mov r9, qword [r15 + r12 + 0x30]
mov qword [rsp + 0x58], r9
add rdx, r9
rol rdx, 0x16
movabs r9, 0xb492b66fbe98f273
imul r11, r9
mov rbp, rdx
imul rbp, r9
mov r9, r11
xor r9, rsi
mov rbx, qword [r15 + r12 + 0x28]
add r8, rbx
mov rdx, r8
add rdx, rbp
add rcx, r10
movabs r8, 0xb492b66fbe98f273
imul rdi, r8
mov rbp, qword [r15 + r12 + 0x18]
add rdi, qword [r15 + r12]
add r10, rbp
add r10, rdi
add r10, r9
rol r10, 0x2b
add rax, r13
add rax, rdi
mov r8, rax
rol r8, 0x14
add rdi, r8
add rdi, r10
rol rcx, 0x1f
mov r8, rax
mov r11, rcx
movabs rax, 0xb492b66fbe98f273
imul r11, rax
add r8, rbp
add rsi, r11
mov rax, qword [r15 + r12 + 0x38]
add rsi, qword [r15 + r12 + 0x20]
add r13, rax
add r13, rdx
add r13, rsi
add rbx, qword [rsp + 0x58]
add rbx, rsi
mov rcx, rbx
rol rcx, 0x14
add rsi, rcx
rol r13, 0x2b
add rsi, r13
mov r10, rbx
add r10, rax
add r12, 0x40
cmp qword [rsp + 0x60], r12
jne 0x1400b8cc3
xor rdi, rsi
movabs rbx, 0x9ddfea08eb382d69
imul rdi, rbx
xor rsi, rdi
shr rdi, 0x2f
xor rdi, rsi
imul rdi, rbx
mov rax, rdi
shr rax, 0x2f
xor rax, rdi
imul rax, rbx
add rax, r11
xor r8, r10
imul r8, rbx
xor r10, r8
shr r8, 0x2f
xor r8, r10
imul r8, rbx
mov rcx, r8
shr rcx, 0x2f
xor rcx, r8
imul rcx, rbx
mov r8, rdx
shr r8, 0x2f
xor r8, rdx
movabs rdx, 0xb492b66fbe98f273
imul r8, rdx
add r8, r9
add r8, rcx
xor r8, rax
imul r8, rbx
xor rax, r8
shr r8, 0x2f
xor r8, rax
imul r8, rbx
mov r12, r8
shr r12, 0x2f
xor r12, r8
imul r12, rbx
mov rbp, qword [rsp + 0x30]
mov r13, qword [rsp + 0x38]
jmp 0x1400b8a16
cmp r14, 9
jb 0x1400b9196
mov rax, qword [r15 + r14 - 8]
lea rdx, [rax + r14]
mov ecx, r14d
ror rdx, cl
mov rcx, qword [r15]
xor rcx, rdx
movabs r8, 0x9ddfea08eb382d69
imul rcx, r8
xor rdx, rcx
shr rcx, 0x2f
xor rcx, rdx
imul rcx, r8
mov r12, rcx
shr r12, 0x2f
xor r12, rcx
imul r12, r8
xor r12, rax
jmp 0x1400b8a16
movzx edx, byte [rbx + 0x27]
mov eax, edx
and eax, 0x7f
mov rcx, rax
test dl, dl
jns 0x1400b8ebb
mov rcx, qword [rbx + 0x18]
cmp rcx, r14
jne 0x1400b8be5
lea rcx, [rbx + 0x10]
test dl, dl
jns 0x1400b8ecf
mov rcx, qword [rcx]
jns 0x1400b9127
mov qword [rsp + 0x38], r8
test r14, r14
je 0x1400b8ef7
mov rdx, r15
mov r8, r14
call fcn.14013eeb0
test eax, eax
mov r8, qword [rsp + 0x38]
jne 0x1400b8be5
mov r13, rbx
jmp 0x1400b8a26
lea rcx, [rdi - 1]
and rax, rcx
jmp 0x1400b8bdc
lea r8, [rdi - 1]
and r8, r12
jmp 0x1400b8b99
mov edx, 1
jmp 0x1400b8f5c
divss xmm0, xmm2
call fcn.14015c3fc
cvttss2si rcx, xmm0
mov rdx, rcx
sar rdx, 0x3f
subss xmm0, dword [0x1402d4098]
cvttss2si rax, xmm0
and rax, rdx
or rax, rcx
lea rcx, [rsi + rsi]
cmp rsi, 3
jb 0x1400b8f17
lea r8, [rsi - 1]
xor edx, edx
test rsi, r8
setne dl
or rdx, rcx
cmp rdx, rax
cmovbe rdx, rax
mov rcx, r14
call fcn.1400e44b0
mov rsi, qword [r14 + 8]
lea rbp, [rsi - 1]
test rsi, rbp
je 0x1400b8f94
cmp r15, rsi
jb 0x1400b911f
mov rax, r15
xor edx, edx
div rsi
mov rbp, rdx
jmp 0x1400b87f6
and rbp, r15
jmp 0x1400b87f6
and rax, rcx
jmp 0x1400b8842
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
test rbp, rbp
je 0x1400b8fc7
mov rax, qword [rbp]
mov rax, qword [rax]
mov rcx, rbp
mov edx, 1
call qword [case.0x14017aab5.0]
mov rbp, rsi
jmp 0x1400b8a4e
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
jmp 0x1400b850f
mov rcx, rbp
mov edx, 0x20
call fcn.14012a320
jmp 0x1400b8a45
xor r13d, r13d
xor r15d, r15d
jmp 0x1400b8629
lea rcx, [rsp + 0x68]
call fcn.140181600
lea r9, [rsp + 0x70]
jmp 0x1400b8980
lea rcx, [0x14033b118]
call fcn.14011a0e0
test al, al
je 0x1400b904c
lea r12, [0x14033b120]
mov rcx, r12
call fcn.1400bd360
lea rcx, [0x14033b118]
mov rdx, r12
xor r8d, r8d
mov r9, rcx
call fcn.14011a010
mov rsi, qword [rsp + 0x30]
jmp 0x1400b84fe
mov r12, qword [0x14033b118]
jmp 0x1400b9042
lea rcx, [0x14033b118]
call fcn.14011a0e0
test al, al
je 0x1400b9093
lea rbx, [0x14033b120]
mov rcx, rbx
call fcn.1400bd360
lea rcx, [0x14033b118]
mov rdx, rbx
xor r8d, r8d
mov r9, rcx
call fcn.14011a010
mov rsi, qword [rsp + 0x30]
jmp 0x1400b8520
mov rax, qword [0x14033b118]
jmp 0x1400b9089
mov ecx, 0xb8
call fcn.14013a6b4
mov rcx, rax
call fcn.1400611a0
mov r14, qword [0x14033b128]
jmp 0x1400b8530
mov rbp, qword [rsp + 0x30]
mov rbx, rax
jmp 0x1400b8850
lea rax, str.basic_string_const_char__detected_nullptr
mov qword [rsp + 0x20], rax
lea rcx, str._s:_d:_assertion__s_failed:__s
lea rdx, str....._buildtools_third_partylibc_trunkinclude_string
lea r9, str.__s___nullptr
mov r8d, 0x387
call fcn.140181600
lea rax, str.char_traits::copy_overlapped_range
mov qword [rsp + 0x20], rax
lea rcx, str._s:_d:_assertion__s_failed:__s
lea rdx, str....._buildtools_third_partylibc_trunkinclude__stringchar_traits.h
lea r9, str.__s2_____s1____s2_____s1__n
mov r8d, 0xf1
call fcn.140181600
mov rbp, r15
jmp 0x1400b87f6
test al, al
je 0x1400b914e
mov r9, r8
xor ecx, ecx
mov dl, byte [rbx + rcx + 0x10]
cmp dl, byte [r15 + rcx]
mov rbp, qword [rsp + 0x30]
mov r8, r9
jne 0x1400b8be5
inc rcx
cmp rax, rcx
jne 0x1400b9130
mov r13, rbx
mov rbp, qword [rsp + 0x30]
jmp 0x1400b8a26
mov eax, dword [r15]
mov ecx, dword [r15 + r14 - 4]
lea rax, [r14 + rax*8]
xor rax, rcx
movabs rdx, 0x9ddfea08eb382d69
imul rax, rdx
xor rcx, rax
shr rax, 0x2f
xor rax, rcx
imul rax, rdx
mov r12, rax
shr r12, 0x2f
xor r12, rax
imul r12, rdx
jmp 0x1400b91ee
cmp r14, 4
jae 0x1400b915b
movabs r12, 0x9ae16a3b2f90404f
test r14, r14
je 0x1400b91ee
movzx eax, byte [r15]
mov rcx, r14
shr rcx, 1
movzx ecx, byte [r15 + rcx]
movzx edx, byte [r14 + r15 - 1]
shl rcx, 8
or rcx, rax
lea rax, [r14 + rdx*4]
imul rcx, r12
movabs rdx, 0xc949d7c7509e6557
imul rdx, rax
xor rdx, rcx
mov rax, rdx
shr rax, 0x2f
xor rax, rdx
imul r12, rax
mov rbp, qword [rsp + 0x30]
jmp 0x1400b8a16