Function at 0x14011f7b0
Capabilities:
Encode data using base64

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xe8
mov qword [rsp + 0x30], rdx
mov rax, qword [0x140327038]
xor rax, rsp
mov qword [rsp + 0xe0], rax
mov qword [rsp + 0x58], r8
mov rdx, qword [r8]
cmp qword [rdx + 0x18], 0
mov qword [rsp + 0x28], rcx
sete al
cmp qword [rdx + 0x10], 0
je 0x14011f7f8
xor eax, eax
test al, al
jne 0x140120b0d
mov rax, qword [rsp + 0x30]
cmp qword [rax + 0x10], 0
je 0x14012099d
mov rax, qword [rsp + 0x28]
lea rcx, [rax + 0x20]
xorps xmm0, xmm0
movaps xmmword [rsp + 0xa0], xmm0
mov qword [rsp + 0x50], rcx
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x140121253
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0xc8], rax
lea rdx, [rsp + 0xd0]
lea rcx, [rsp + 0xc8]
mov qword [rsp + 0xd0], rcx
mov qword [rsp + 0xd8], 1
xor r8d, r8d
mov r9b, 1
call fcn.140001280
cmp qword [rsp + 0xd8], 0
je 0x14011f8c1
xor edi, edi
mov rbx, qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
mov rax, qword [rsp + 0xd0]
mov rax, qword [rax + rdi*8]
mov rsi, qword [rax + 0x10]
test rsi, rsi
je 0x14012145c
add rsi, 0x108
mov rcx, rsi
call rbx
test al, al
je 0x140121360
inc rdi
cmp rdi, qword [rsp + 0xd8]
jb 0x14011f887
mov rax, qword [rsp + 0xc8]
mov r15, qword [rax + 0x10]
mov rax, qword [rsp + 0x58]
mov rdi, qword [rax]
lea r14, [r15 + 8]
mov r11, qword [r15 + 8]
cmp r11, qword [rdi + 0x38]
jne 0x14012035c
mov rsi, qword [r15 + 0x10]
cmp rsi, qword [rdi + 0x40]
jne 0x14012035c
mov r9, qword [r15 + 0x18]
cmp r9, qword [rdi + 0x48]
jne 0x14012035c
mov r10, qword [r15 + 0x20]
cmp r10, qword [rdi + 0x50]
jne 0x14012035c
cmp dword [r15 + 4], 1
jne 0x140121263
mov rax, qword [r15 + 0x50]
mov qword [rsp + 0x68], rax
inc rax
mov qword [rsp + 0x38], r15
mov qword [r15 + 0x50], rax
test r10, r10
sete al
test r9, r9
je 0x14011f93e
xor eax, eax
mov rcx, qword [rsp + 0x58]
mov rbx, qword [rcx]
test al, al
jne 0x14011fdf3
mov rax, qword [rsp + 0x28]
mov rdi, qword [rax + 0x58]
test rdi, rdi
je 0x14011fdf3
mov rax, qword [rsp + 0x28]
lea r12, [rax + 0x50]
mov rax, r11
shr rax, 0x20
mov rcx, rsi
shr rcx, 0x20
mov edx, r11d
imul rdx, rdx, 0x32348c9d
imul rax, rax, 0x24e62a03
add rax, rdx
mov edx, esi
imul rdx, rdx, 0x37da1fb9
mov r8d, 0xc54622fd
imul rcx, r8
add rcx, rdx
add rcx, rax
mov rax, rdi
shr rax, 1
movabs rdx, 0x5555555555555555
and rax, rdx
mov rdx, rdi
sub rdx, rax
mov rax, rdx
movabs r8, 0x3333333333333333
and rax, r8
shr rdx, 2
and rdx, r8
add rdx, rax
mov r15, rdx
shr r15, 4
add r15, rdx
movabs rax, 0xf0f0f0f0f0f0f0f
and r15, rax
movabs rax, 0x101010101010101
imul r15, rax
shr r15, 0x38
cmp r15, 1
jbe 0x140120bd6
mov r8, rcx
cmp rcx, rdi
jb 0x14011fa1d
mov rax, rcx
xor edx, edx
div rdi
mov r8, rdx
mov qword [rsp + 0x48], r12
mov rax, qword [r12]
mov rax, qword [rax + r8*8]
test rax, rax
je 0x14011fdf3
mov rbp, qword [rax]
test rbp, rbp
je 0x14011fdf3
lea r12, [rdi - 1]
mov rax, qword [rbp + 8]
cmp rax, rcx
jne 0x140120b66
cmp qword [rbp + 0x18], rsi
sete al
cmp qword [rbp + 0x10], r11
jne 0x14012146c
test al, al
je 0x140120b82
mov r11, qword [rbp + 0x28]
test r11, r11
je 0x14011fdf3
mov rax, r9
shr rax, 0x20
mov rcx, r10
shr rcx, 0x20
mov edx, r9d
imul rdx, rdx, 0x32348c9d
imul rax, rax, 0x24e62a03
add rax, rdx
mov edx, r10d
imul rdx, rdx, 0x37da1fb9
mov r8d, 0xc54622fd
imul rcx, r8
add rcx, rdx
add rcx, rax
mov rax, r11
shr rax, 1
movabs rdx, 0x5555555555555555
and rax, rdx
mov rdx, r11
sub rdx, rax
mov rax, rdx
movabs r8, 0x3333333333333333
and rax, r8
shr rdx, 2
and rdx, r8
add rdx, rax
mov rsi, rdx
shr rsi, 4
add rsi, rdx
movabs rax, 0xf0f0f0f0f0f0f0f
and rsi, rax
movabs rax, 0x101010101010101
imul rsi, rax
shr rsi, 0x38
cmp rsi, 1
jbe 0x140120ded
mov r8, rcx
cmp rcx, r11
jb 0x14011fb2b
mov rax, rcx
xor edx, edx
div r11
mov r8, rdx
mov rax, qword [rbp + 0x20]
mov rax, qword [rax + r8*8]
test rax, rax
je 0x14011fdf3
mov rdi, qword [rax]
test rdi, rdi
je 0x14011fdf3
mov rax, qword [rdi + 8]
cmp rax, rcx
jne 0x140120ba5
cmp qword [rdi + 0x18], r10
sete al
cmp qword [rdi + 0x10], r9
jne 0x140121479
test al, al
je 0x140120bc0
mov rax, qword [rdi + 0x28]
mov r13, qword [rdi + 0x30]
mov r8, r13
mov rdx, r13
mov r15, r13
mov r12, r13
sub r8, rax
je 0x14011fc13
sar r8, 3
movabs rcx, 0xcccccccccccccccd
imul r8, rcx
mov rcx, qword [rsp + 0x30]
mov rdx, qword [rcx]
mov rcx, qword [rcx + 8]
mov r15, rax
mov r9, r8
shr r9, 1
lea r11, [r9 + r9*4]
lea r10, [r15 + r11*8]
mov rsi, qword [r15 + r11*8]
cmp rsi, rdx
jne 0x1401213a4
mov rsi, qword [r10 + 8]
cmp rsi, rcx
jb 0x14012148b
mov r11b, 1
cmp rsi, rcx
jne 0x14011fbdf
xor r11d, r11d
test r11b, r11b
js 0x140121520
mov r8, r9
test r9, r9
jne 0x14011fbaf
cmp r15, r13
je 0x14012150f
cmp rdx, qword [r15]
jne 0x1401214e2
cmp rcx, qword [r15 + 8]
jne 0x1401214e2
lea r12, [r15 + 0x28]
mov rdx, rax
sub r15, rdx
mov rcx, r15
sar rcx, 3
movabs r8, 0xcccccccccccccccd
imul rcx, r8
sub r12, rdx
mov rdx, r12
sar rdx, 3
imul rdx, r8
cmp rdx, rcx
jl 0x140121480
je 0x140121483
add r15, rax
add r12, rax
cmp r12, r13
je 0x14011fc76
jmp 0x1401213cf
mov rsi, qword [r13 - 8]
add r13, 0xffffffffffffffd8
test rsi, rsi
je 0x14011fc76
lock dec dword [rsi]
je 0x140121532
cmp r13, r15
jne 0x14011fc60
mov qword [rdi + 0x30], r15
mov rax, qword [rdi + 0x28]
cmp rax, r15
jne 0x14011fde8
mov r9, qword [rdi]
mov rcx, qword [rdi + 8]
mov r10, qword [rbp + 0x28]
mov rax, r10
shr rax, 1
movabs rdx, 0x5555555555555555
and rax, rdx
mov rdx, r10
sub rdx, rax
mov rax, rdx
movabs r8, 0x3333333333333333
and rax, r8
shr rdx, 2
and rdx, r8
add rdx, rax
mov rsi, rdx
shr rsi, 4
add rsi, rdx
movabs rax, 0xf0f0f0f0f0f0f0f
and rsi, rax
movabs rax, 0x101010101010101
imul rsi, rax
shr rsi, 0x38
cmp rsi, 1
jbe 0x140120df9
cmp rcx, r10
jb 0x14011fd0d
mov rax, rcx
xor edx, edx
div r10
mov rcx, rdx
mov r15, qword [rbp + 0x20]
mov rax, qword [r15 + rcx*8]
mov r11, rax
mov rax, qword [rax]
cmp rax, rdi
jne 0x14011fd15
lea rax, [rbp + 0x30]
cmp r11, rax
je 0x14011fd48
mov rax, qword [r11 + 8]
cmp esi, 1
jbe 0x14012137c
cmp rax, r10
jb 0x14011fd43
xor edx, edx
div r10
mov rax, rdx
cmp rax, rcx
je 0x14011fd7a
test r9, r9
je 0x14011fd6f
mov r8, qword [r9 + 8]
cmp esi, 1
jbe 0x140121503
mov rdx, r8
cmp r8, r10
jb 0x14011fd6a
mov rax, r8
xor edx, edx
div r10
cmp rdx, rcx
je 0x14011fd87
mov qword [r15 + rcx*8], 0
mov r9, qword [rdi]
test r9, r9
je 0x140120b94
mov r8, qword [r9 + 8]
cmp esi, 1
jbe 0x1401214f8
cmp r8, r10
jb 0x14011fda0
mov rax, r8
xor edx, edx
div r10
mov r8, rdx
cmp r8, rcx
je 0x14011fdb0
mov rax, qword [rbp + 0x20]
mov qword [rax + r8*8], r11
mov r9, qword [rdi]
mov qword [r11], r9
mov qword [rdi], 0
dec qword [rbp + 0x38]
mov r15, qword [rdi + 0x28]
test r15, r15
je 0x14011fde0
mov r12, qword [rdi + 0x30]
mov rcx, r15
cmp r12, r15
jne 0x1401214b1
mov qword [rdi + 0x30], r15
call fcn.14013a6ac
mov rcx, rdi
call fcn.14013a6ac
cmp qword [rbp + 0x38], 0
je 0x140120dd3
mov rcx, qword [rsp + 0x38]
lea rax, [rcx + 0x18]
lea rdx, [rbx + 0x68]
lea r15, [rbx + 0x58]
movups xmm0, xmmword [r15]
movups xmmword [r14], xmm0
mov qword [rsp + 0x48], rdx
movups xmm0, xmmword [rdx]
movups xmmword [rax], xmm0
mov qword [rcx + 0x50], 1
mov rcx, qword [rbx + 0x68]
mov r8, qword [rbx + 0x70]
test r8, r8
setne al
mov dl, 1
test rcx, rcx
je 0x14012145f
test dl, dl
je 0x1401202ee
movabs r14, 0xaaaaaaaaaaaaaaaa
mov r11, qword [rsp + 0x28]
lea rbp, [r11 + 0x50]
mov r9, qword [rbx + 0x58]
mov r10, qword [rbx + 0x60]
mov rax, r9
shr rax, 0x20
mov r13, r10
shr r13, 0x20
mov edx, r9d
imul rdx, rdx, 0x32348c9d
imul rax, rax, 0x24e62a03
add rax, rdx
mov edx, r10d
imul rdx, rdx, 0x37da1fb9
mov esi, 0xc54622fd
imul r13, rsi
add r13, rdx
add r13, rax
mov rsi, qword [r11 + 0x58]
mov rdi, r14
test rsi, rsi
je 0x140120c26
mov rax, rsi
shr rax, 1
movabs rdx, 0x5555555555555555
and rax, rdx
mov rdx, rsi
sub rdx, rax
mov rax, rdx
movabs r11, 0x3333333333333333
and rax, r11
shr rdx, 2
and rdx, r11
add rdx, rax
mov r11, rdx
shr r11, 4
add r11, rdx
movabs rax, 0xf0f0f0f0f0f0f0f
and r11, rax
movabs rax, 0x101010101010101
imul r11, rax
shr r11, 0x38
cmp r11, 1
jbe 0x140120be2
mov rdi, r13
cmp r13, rsi
jb 0x14011ff1f
mov rax, r13
xor edx, edx
div rsi
mov rdi, rdx
mov r12, rbp
mov rax, qword [rbp]
mov rbp, qword [rax + rdi*8]
test rbp, rbp
je 0x140120c23
mov rbp, qword [rbp]
test rbp, rbp
je 0x140120c23
mov rax, qword [rbp + 8]
cmp rax, r13
jne 0x140120c07
cmp qword [rbp + 0x10], r9
jne 0x14011ff33
cmp qword [rbp + 0x18], r10
jne 0x14011ff33
lea rsi, [rbp + 0x20]
mov rax, rcx
shr rax, 0x20
mov r15, r8
shr r15, 0x20
mov edx, ecx
imul rdx, rdx, 0x32348c9d
imul rax, rax, 0x24e62a03
add rax, rdx
mov edx, r8d
imul rdx, rdx, 0x37da1fb9
mov r9d, 0xc54622fd
imul r15, r9
add r15, rdx
add r15, rax
mov rbx, qword [rbp + 0x28]
test rbx, rbx
je 0x140120f41
mov rax, rbx
shr rax, 1
movabs rdx, 0x5555555555555555
and rax, rdx
mov rdx, rbx
sub rdx, rax
mov rax, rdx
movabs r9, 0x3333333333333333
and rax, r9
shr rdx, 2
and rdx, r9
add rdx, rax
mov r9, rdx
shr r9, 4
add r9, rdx
movabs rax, 0xf0f0f0f0f0f0f0f
and r9, rax
movabs rax, 0x101010101010101
imul r9, rax
shr r9, 0x38
cmp r9, 1
jbe 0x140121247
mov r14, r15
cmp r15, rbx
jb 0x14012001e
mov rax, r15
xor edx, edx
div rbx
mov r14, rdx
mov rax, qword [rsi]
mov r13, qword [rax + r14*8]
test r13, r13
je 0x140120f41
mov r13, qword [r13]
test r13, r13
je 0x140120f41
mov rax, qword [r13 + 8]
cmp rax, r15
jne 0x140120f25
cmp qword [r13 + 0x10], rcx
jne 0x14012002e
cmp qword [r13 + 0x18], r8
jne 0x14012002e
mov rcx, qword [rsp + 0x38]
test rcx, rcx
je 0x140120072
mov eax, 1
lock xadd dword [rcx], eax
cmp eax, 0x7fffffff
je 0x140121469
mov rax, qword [rsp + 0x30]
movups xmm0, xmmword [rax]
movaps xmmword [rsp + 0xb0], xmm0
mov rbp, qword [rax]
mov rsi, qword [rax + 8]
mov r11, qword [r13 + 0x28]
mov r15, qword [r13 + 0x30]
mov rcx, r15
sub rcx, r11
je 0x140120bc8
sar rcx, 3
movabs rax, 0xcccccccccccccccd
imul rcx, rax
mov r12, r11
mov rax, rcx
xor r9d, r9d
shr rax, 1
lea r8, [rax + rax*4]
lea rdx, [r12 + r8*8]
cmp qword [r12 + r8*8], rbp
je 0x140121566
mov r8d, 0
sbb r8d, r8d
or r8b, 1
test r8b, r8b
jns 0x1401200ec
add rdx, 0x28
not rax
add rax, rcx
mov r12, rdx
mov rcx, rax
test rax, rax
jne 0x1401200b8
mov r14, r12
mov rax, r11
lea r8, [r13 + 0x28]
sub r14, rax
mov rbx, r14
sar rbx, 3
movabs rcx, 0xcccccccccccccccd
imul rbx, rcx
lea rdi, [r11 + r14]
cmp rdi, r15
je 0x140120141
cmp rbp, qword [rdi]
setb cl
je 0x140121692
test cl, cl
je 0x1401216a0
mov rcx, qword [r13 + 0x38]
cmp r15, rcx
jae 0x14012014e
jmp 0x140121631
mov rcx, qword [r13 + 0x38]
cmp r15, rcx
jb 0x140121429
movabs r9, 0x666666666666666
sub r15, rax
sar r15, 3
movabs rdx, 0xcccccccccccccccd
imul r15, rdx
inc r15
cmp r15, r9
ja 0x140121493
sub rcx, rax
sar rcx, 3
imul rcx, rdx
lea rax, [rcx + rcx]
cmp rax, r15
cmova r15, rax
movabs rax, 0x333333333333333
cmp rcx, rax
jae 0x14012149d
test r15, r15
mov qword [rsp + 0x60], r8
mov qword [rsp + 0x48], rsi
mov qword [rsp + 0x40], rbp
mov qword [rsp + 0x70], r11
je 0x140121496
cmp r15, r9
ja 0x1401214a5
lea rax, [r15*8]
lea rcx, [rax + rax*4]
call fcn.14013a6b4
mov rsi, rax
lea rax, [rbx + rbx*4]
lea rbp, [rsi + rax*8]
lea rax, [r15 + r15*4]
lea r10, [rsi + rax*8]
cmp rbx, r15
mov rcx, qword [rsp + 0x60]
je 0x1401216cc
test rbp, rbp
je 0x1401214a8
mov rax, qword [rsp + 0x40]
mov qword [rbp], rax
mov rax, qword [rsp + 0x48]
mov qword [rbp + 8], rax
movaps xmm0, xmmword [rsp + 0xb0]
movups xmmword [rbp + 0x10], xmm0
mov rax, qword [rsp + 0x38]
mov qword [rbp + 0x20], rax
mov rcx, qword [rcx]
mov rax, rbp
cmp rcx, rdi
je 0x140120270
mov rdx, rdi
mov r8, rbp
lea rax, [r8 - 0x28]
movups xmm0, xmmword [rdx - 0x28]
movups xmmword [r8 - 0x28], xmm0
movups xmm0, xmmword [rdx - 0x18]
movups xmmword [r8 - 0x18], xmm0
mov r9, qword [rdx - 8]
mov qword [r8 - 8], r9
mov qword [rdx - 8], 0
lea r9, [rdx - 0x28]
mov rdx, r9
mov r8, rax
cmp r9, rcx
jne 0x14012023b
add rbp, 0x28
mov rcx, qword [r13 + 0x30]
cmp rcx, rdi
je 0x1401202b6
test rbp, rbp
je 0x14012151d
movups xmm0, xmmword [rdi]
movups xmmword [rbp], xmm0
movups xmm0, xmmword [rdi + 0x10]
movups xmmword [rbp + 0x10], xmm0
mov rdx, qword [rdi + 0x20]
mov qword [rbp + 0x20], rdx
mov qword [rdi + 0x20], 0
add rbp, 0x28
add rdi, 0x28
cmp rdi, rcx
jne 0x14012027d
mov rdi, qword [r13 + 0x30]
mov rsi, qword [r13 + 0x28]
mov qword [r13 + 0x28], rax
mov qword [r13 + 0x30], rbp
mov qword [r13 + 0x38], r10
cmp rdi, rsi
je 0x1401202e1
mov r14, qword [rdi - 8]
add rdi, 0xffffffffffffffd8
test r14, r14
jne 0x140121547
cmp rdi, rsi
jne 0x1401202cb
test rsi, rsi
je 0x1401202ee
mov rcx, rsi
call fcn.14013a6ac
mov rax, qword [rsp + 0x58]
mov rsi, qword [rax]
movups xmm0, xmmword [rsi + 0x38]
movaps xmmword [rsp + 0xa0], xmm0
mov rax, qword [rsp + 0x38]
mov rbx, qword [rax + 0x60]
dec rbx
mov ecx, 0x40
call fcn.14013a6b4
mov rdi, rax
lea rax, [0x1402e4000]
mov qword [rdi], rax
mov dword [rdi + 8], 3
movups xmm0, xmmword [rsi + 0x48]
movups xmmword [rdi + 0x10], xmm0
mov rax, qword [rsp + 0x30]
movups xmm0, xmmword [rax]
movups xmmword [rdi + 0x20], xmm0
mov rax, qword [rsp + 0x68]
mov qword [rdi + 0x30], rax
lea rax, [0x1402e4080]
mov qword [rdi], rax
mov qword [rdi + 0x38], rbx
mov sil, 1
jmp 0x1401203af
movups xmm0, xmmword [r14]
movaps xmmword [rsp + 0xa0], xmm0
movups xmm0, xmmword [r15 + 0x18]
movups xmmword [rdi + 0x10], xmm0
mov r8, qword [rsp + 0x58]
mov rax, qword [r8]
mov rcx, qword [rsp + 0x30]
movups xmm0, xmmword [rcx]
movups xmmword [rax + 0x20], xmm0
mov rax, qword [r8]
mov rcx, qword [r15 + 0x50]
lea rdx, [rcx + 1]
mov qword [r15 + 0x50], rdx
mov qword [rax + 0x30], rcx
cmp dword [r15 + 4], 2
je 0x1401212de
mov rdi, qword [r8]
mov qword [r8], 0
xor esi, esi
cmp qword [rsp + 0xd8], 0
je 0x1401203ec
xor ebx, ebx
mov r14d, 0x108
mov r15, qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov rax, qword [rsp + 0xd0]
mov rax, qword [rax + rbx*8]
mov rcx, qword [rax + 0x10]
add rcx, r14
call r15
inc rbx
cmp rbx, qword [rsp + 0xd8]
jb 0x1401203c9
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
test rdi, rdi
je 0x14012041c
mov rax, qword [rsp + 0x28]
mov rcx, qword [rax + 0x18]
mov qword [rsp + 0x78], rdi
lea rdx, [rsp + 0xa0]
lea r8, [rsp + 0x78]
call fcn.1401b32b0
test sil, sil
je 0x14012099d
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0xc8], rax
lea rdx, [rsp + 0xd0]
lea rcx, [rsp + 0xc8]
mov qword [rsp + 0xd0], rcx
mov qword [rsp + 0xd8], 1
xor esi, esi
xor r8d, r8d
mov r9b, 1
call fcn.140001280
cmp qword [rsp + 0xd8], 0
je 0x1401204b4
xor edi, edi
mov rbx, qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
mov rax, qword [rsp + 0xd0]
mov rax, qword [rax + rdi*8]
mov rsi, qword [rax + 0x10]
test rsi, rsi
je 0x140121466
add rsi, 0x108
mov rcx, rsi
call rbx
test al, al
je 0x14012136e
inc rdi
mov rsi, qword [rsp + 0xd8]
cmp rdi, rsi
jb 0x140120477
mov rax, qword [rsp + 0xc8]
mov rdi, qword [rax + 0x10]
cmp dword [rdi + 4], 1
jne 0x1401204e0
cmp qword [rdi + 0x80], 0
je 0x1401204e0
mov rbx, qword [rdi + 0xa0]
dec rbx
jne 0x14012175b
test rsi, rsi
je 0x140120515
xor esi, esi
mov edi, 0x108
mov rbx, qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov rax, qword [rsp + 0xd0]
mov rax, qword [rax + rsi*8]
mov rcx, qword [rax + 0x10]
add rcx, rdi
call rbx
inc rsi
cmp rsi, qword [rsp + 0xd8]
jb 0x1401204f3
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0xc8], rax
lea rdx, [rsp + 0xd0]
lea rcx, [rsp + 0xc8]
mov qword [rsp + 0xd0], rcx
mov qword [rsp + 0xd8], 1
xor esi, esi
xor r8d, r8d
mov r9b, 1
call fcn.140001280
cmp qword [rsp + 0xd8], 0
je 0x1401205a4
xor edi, edi
mov rbx, qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
mov rax, qword [rsp + 0xd0]
mov rax, qword [rax + rdi*8]
mov rsi, qword [rax + 0x10]
test rsi, rsi
je 0x140121473
add rsi, 0x108
mov rcx, rsi
call rbx
test al, al
je 0x140121388
inc rdi
mov rsi, qword [rsp + 0xd8]
cmp rdi, rsi
jb 0x140120567
mov rax, qword [rsp + 0xc8]
mov rdi, qword [rax + 0x10]
cmp dword [rdi + 4], 1
jne 0x1401205c3
mov rbx, qword [rdi + 0x70]
test rbx, rbx
jne 0x14012158a
test rsi, rsi
je 0x1401205f8
xor esi, esi
mov edi, 0x108
mov rbx, qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov rax, qword [rsp + 0xd0]
mov rax, qword [rax + rsi*8]
mov rcx, qword [rax + 0x10]
add rcx, rdi
call rbx
inc rsi
cmp rsi, qword [rsp + 0xd8]
jb 0x1401205d6
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0xc8], rax
lea rdx, [rsp + 0xd0]
lea rcx, [rsp + 0xc8]
mov qword [rsp + 0xd0], rcx
mov qword [rsp + 0xd8], 1
xor esi, esi
xor r8d, r8d
mov r9b, 1
call fcn.140001280
cmp qword [rsp + 0xd8], 0
je 0x140120687
xor edi, edi
mov rbx, qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
mov rax, qword [rsp + 0xd0]
mov rax, qword [rax + rdi*8]
mov rsi, qword [rax + 0x10]
test rsi, rsi
je 0x140121476
add rsi, 0x108
mov rcx, rsi
call rbx
test al, al
je 0x140121396
inc rdi
mov rsi, qword [rsp + 0xd8]
cmp rdi, rsi
jb 0x14012064a
mov rax, qword [rsp + 0xc8]
mov rax, qword [rax + 0x10]
cmp dword [rax + 4], 4
je 0x140120a2c
mov rbp, qword [rax + 0xe0]
test rbp, rbp
je 0x140120a2c
mov eax, 1
lock xadd dword [rbp + 8], eax
cmp eax, 0x7fffffff
je 0x1401214ab
mov rsi, qword [rsp + 0xd8]
test rsi, rsi
je 0x1401206ff
xor esi, esi
mov ebx, 0x108
mov rdi, qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov rax, qword [rsp + 0xd0]
mov rax, qword [rax + rsi*8]
mov rcx, qword [rax + 0x10]
add rcx, rbx
call rdi
inc rsi
cmp rsi, qword [rsp + 0xd8]
jb 0x1401206dd
test rbp, rbp
je 0x14012099d
mov rax, qword [rbp]
mov rax, qword [rax + 8]
lea rcx, [0x140097b00]
cmp rax, rcx
jne 0x140120a05
mov r14, qword [rbp + 0x10]
lea rdi, [r14 + 0x40]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x140120a72
cmp byte [r14 + 0x50], 0
jne 0x14012098a
mov rax, qword [r14 + 0x10]
mov r12, qword [rax + 0x20]
lea rax, [r14 + 0x18]
mov qword [rsp + 0xc8], rax
lea rdx, [rsp + 0xd0]
lea rcx, [rsp + 0xc8]
mov qword [rsp + 0xd0], rcx
mov qword [rsp + 0xd8], 1
xor r15d, r15d
xor r8d, r8d
mov r9b, 1
call fcn.140001280
cmp qword [rsp + 0xd8], 0
je 0x1401207dc
xor ebx, ebx
mov r13, qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
mov rax, qword [rsp + 0xd0]
mov rax, qword [rax + rbx*8]
mov rsi, qword [rax + 0x10]
test rsi, rsi
je 0x1401214ae
add rsi, 0x108
mov rcx, rsi
call r13
test al, al
je 0x140120aa2
inc rbx
mov r15, qword [rsp + 0xd8]
cmp rbx, r15
jb 0x14012079e
mov rax, qword [rsp + 0xc8]
mov rax, qword [rax + 0x10]
mov ecx, dword [rax + 4]
mov dword [rsp + 0x38], ecx
cmp ecx, 1
mov qword [rsp + 0x30], rbp
mov qword [rsp + 0x28], rdi
jne 0x140120aea
mov rcx, qword [rax + 0x88]
mov rsi, qword [rax + 0x90]
cmp rcx, rsi
jne 0x140120a10
mov rdx, qword [rax + 0xa0]
mov dword [rsp + 0x50], 0
movzx ebx, byte [rax + 0xe9]
test bl, bl
jne 0x140120a80
cmp byte [rax + 0xe8], 0
jne 0x140120a80
mov r9b, 1
mov rdx, qword [rax + 8]
xor rdx, qword [r12]
mov r8, qword [rax + 0x10]
xor r8, qword [r12 + 8]
or r8, rdx
setne r13b
sub rsi, rcx
sar rsi, 3
mov rcx, qword [rax + 0xb0]
mov r12, qword [rax + 0x68]
not r12
add r12, qword [rax + 0x60]
mov dword [rsp + 0x68], r9d
mov qword [rsp + 0x48], rcx
test r15, r15
je 0x1401208b8
xor r15d, r15d
mov edi, 0x108
mov rbp, qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov rax, qword [rsp + 0xd0]
mov rax, qword [rax + r15*8]
mov rcx, qword [rax + 0x10]
add rcx, rdi
call rbp
inc r15
cmp r15, qword [rsp + 0xd8]
jb 0x140120896
cmp dword [rsp + 0x38], 1
jne 0x140120ab0
movzx edx, byte [rsp + 0x50]
test bl, bl
jne 0x140120a33
xor eax, eax
test r13b, r13b
setne al
shl eax, 4
or eax, edx
or eax, 2
movabs rcx, 0x3700000000
mov rbp, qword [rsp + 0x30]
mov rdi, qword [rsp + 0x28]
cmp byte [r14 + 0x90], 0
jne 0x140120b24
cmp byte [r14 + 0xa8], 0
jne 0x140120b39
cmp byte [r14 + 0xc0], 0
jne 0x140120b4d
mov dword [r14 + 0x4c], eax
mov edx, eax
or rdx, rcx
mov qword [rsp + 0xc8], rdx
shr rcx, 0x20
cmp byte [r14 + 0x80], 0
je 0x1401209db
cmp eax, dword [r14 + 0x84]
je 0x1401209f7
mov rax, qword [rsp + 0xc8]
mov qword [r14 + 0x84], rax
mov rbx, qword [r14 + 0x68]
mov r15, qword [r14 + 0x70]
cmp rbx, r15
je 0x14012098a
lea rsi, [rsp + 0xc8]
mov rcx, qword [rbx]
mov rdx, qword [r14 + 0x58]
mov r8, rsi
call fcn.1400ab860
add rbx, 0x28
cmp rbx, r15
jne 0x140120972
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
lock dec dword [rbp + 8]
je 0x140120a58
mov rax, qword [rsp + 0x58]
mov rcx, qword [rax]
mov qword [rax], 0
test rcx, rcx
je 0x1401209b6
call fcn.14013a6ac
mov rcx, qword [rsp + 0xe0]
xor rcx, rsp
call fcn.14013d520
nop
add rsp, 0xe8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rax, qword [rsp + 0xc8]
mov qword [r14 + 0x84], rax
mov byte [r14 + 0x80], 1
jmp 0x14012095d
cmp ecx, dword [r14 + 0x88]
je 0x14012098a
jmp 0x14012094e
mov rcx, rbp
call qword [case.0x14017aab5.0]
jmp 0x140120993
mov r8, qword [rcx]
mov rdx, qword [rax + 0xa0]
cmp qword [r8 + 0x38], rdx
sete r8b
mov dword [rsp + 0x50], r8d
jmp 0x140120828
xor ebp, ebp
jmp 0x1401206ca
mov eax, edx
or al, 0x24
or edx, 4
cmp byte [rsp + 0x68], 0
movzx eax, al
mov ecx, 0x25
cmove ecx, eax
movzx ecx, cl
shl rcx, 0x20
mov eax, edx
jmp 0x1401208ea
mov rax, qword [rbp]
mov rax, qword [rax]
mov rcx, rbp
mov edx, 1
call qword [case.0x14017aab5.0]
jmp 0x14012099d
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
jmp 0x140120739
cmp byte [rax + 0xea], 0
jne 0x140121801
dec rdx
cmp qword [rax + 0x78], rdx
jne 0x140120844
xor r9d, r9d
jmp 0x140120847
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
jmp 0x1401207cc
mov al, byte [r14 + 0x48]
test al, 1
jne 0x140120acb
cmp byte [r14 + 0x50], 0
jne 0x140120acb
mov al, byte [r14 + 0x51]
test al, 1
je 0x14012181a
mov qword [rsp + 0xc8], 0
xor ecx, ecx
xor eax, eax
mov rbp, qword [rsp + 0x30]
mov rdi, qword [rsp + 0x28]
jmp 0x140120933
movabs rsi, 0xaaaaaaaaaaaaaaaa
mov r9b, 0xaa
mov bl, 0xaa
mov r13b, 0xaa
mov al, 0xaa
mov dword [rsp + 0x50], eax
mov rcx, rsi
mov r12, rsi
jmp 0x140120878
lea r8, [rdx + 0x48]
add rdx, 0x38
mov rcx, qword [rsp + 0x28]
call fcn.14006dbf0
jmp 0x14012099d
cmp rsi, qword [r14 + 0x98]
jbe 0x140120902
or eax, 0x20
jmp 0x14012091e
mov rdx, qword [rsp + 0x48]
cmp rdx, qword [r14 + 0xb0]
jbe 0x140120910
jmp 0x140120b31
mov edx, eax
or edx, 0x20
cmp r12, qword [r14 + 0xc8]
cmova eax, edx
jmp 0x14012091e
and rax, r12
jmp 0x140120b79
cmp r15d, 1
jbe 0x140120b61
cmp rax, rdi
jb 0x140120b79
xor edx, edx
div rdi
mov rax, rdx
cmp rax, r8
jne 0x14011fdf3
mov rbp, qword [rbp]
test rbp, rbp
jne 0x14011fa43
jmp 0x14011fdf3
xor r9d, r9d
jmp 0x14011fdb0
lea rdx, [r11 - 1]
and rax, rdx
jmp 0x140120bb7
cmp esi, 1
jbe 0x140120b9c
cmp rax, r11
jb 0x140120bb7
xor edx, edx
div r11
mov rax, rdx
cmp rax, r8
jne 0x14011fdf3
mov rdi, qword [rdi]
jmp 0x14011fb3f
mov r14, r15
mov rax, r15
mov r12, r15
jmp 0x1401200fa
lea r8, [rdi - 1]
and r8, rcx
jmp 0x14011fa1d
lea rdi, [rsi - 1]
and rdi, r13
jmp 0x14011ff1f
and rdi, r13
jmp 0x140120ccd
mov rdi, r13
jmp 0x140120ccd
lea rdx, [rsi - 1]
and rax, rdx
jmp 0x140120c1a
cmp r11d, 1
jbe 0x140120bfe
cmp rax, rsi
jb 0x140120c1a
xor edx, edx
div rsi
mov rax, rdx
cmp rax, rdi
je 0x14011ff4d
mov rbp, r12
mov qword [rsp + 0x40], rbp
mov ecx, 0x48
call fcn.14013a6b4
mov rbp, rax
movups xmm0, xmmword [r15]
movups xmmword [rax + 0x10], xmm0
xorps xmm0, xmm0
movups xmmword [rax + 0x20], xmm0
movups xmmword [rax + 0x30], xmm0
mov dword [rax + 0x40], 0x3f800000
mov qword [rax + 8], r13
mov qword [rax], 0
mov rax, qword [rsp + 0x28]
mov rax, qword [rax + 0x68]
inc rax
jns 0x140120c85
mov rcx, rax
shr rcx, 1
and eax, 1
or rax, rcx
xorps xmm0, xmm0
cvtsi2ss xmm0, rax
addss xmm0, xmm0
jmp 0x140120c8d
xorps xmm0, xmm0
cvtsi2ss xmm0, rax
mov rcx, rsi
shr rcx, 1
mov eax, esi
and eax, 1
or rax, rcx
test rsi, rsi
jns 0x140120cab
cvtsi2ss xmm1, rax
addss xmm1, xmm1
jmp 0x140120cb0
cvtsi2ss xmm1, rsi
mov rax, qword [rsp + 0x28]
movss xmm2, dword [rax + 0x70]
je 0x140120d4d
mulss xmm1, xmm2
ucomiss xmm0, xmm1
ja 0x140120d4d
mov rax, qword [rsp + 0x40]
mov rcx, qword [rax]
mov rax, qword [rcx + rdi*8]
test rax, rax
jne 0x140120d3f
mov r8, qword [rsp + 0x28]
lea rax, [r8 + 0x60]
mov rdx, qword [r8 + 0x60]
mov qword [rbp], rdx
mov qword [r8 + 0x60], rbp
mov qword [rcx + rdi*8], rax
mov rax, qword [rbp]
test rax, rax
je 0x140120d29
mov rax, qword [rax + 8]
lea rcx, [rsi - 1]
test rsi, rcx
je 0x140120d48
cmp rax, rsi
jb 0x140120d1a
xor edx, edx
div rsi
mov rax, rdx
shl rax, 3
mov rcx, qword [rsp + 0x40]
add rax, qword [rcx]
mov qword [rax], rbp
mov rax, qword [rsp + 0x28]
inc qword [rax + 0x68]
mov rcx, qword [rbx + 0x68]
mov r8, qword [rbx + 0x70]
jmp 0x14011ff59
mov rcx, qword [rax]
mov qword [rbp], rcx
jmp 0x140120d26
and rax, rcx
jmp 0x140120d1a
divss xmm0, xmm2
call fcn.14015c3fc
cvttss2si rcx, xmm0
mov rdx, rcx
subss xmm0, dword [0x1402d4098]
sar rdx, 0x3f
cvttss2si rax, xmm0
and rax, rdx
or rax, rcx
lea rcx, [rsi + rsi]
mov edx, 1
cmp rsi, 3
jb 0x140120d90
lea r8, [rsi - 1]
xor edx, edx
test rsi, r8
setne dl
or rdx, rcx
cmp rdx, rax
cmovbe rdx, rax
mov rcx, qword [rsp + 0x40]
call fcn.1400f0450
mov rax, qword [rsp + 0x28]
mov rsi, qword [rax + 0x58]
lea rdi, [rsi - 1]
test rsi, rdi
je 0x140120bee
cmp r13, rsi
jb 0x140120bf6
mov rax, r13
xor edx, edx
div rsi
mov rdi, rdx
jmp 0x140120ccd
lea rdx, [rsp + 0x80]
mov rcx, qword [rsp + 0x48]
mov r8, rbp
call fcn.1400f01e0
jmp 0x14011fdf3
lea r8, [r11 - 1]
and r8, rcx
jmp 0x14011fb2b
lea rax, [r10 - 1]
and rcx, rax
jmp 0x14011fd0d
cmp rdi, rbx
jae 0x1401210d0
mov rax, qword [rbp + 0x38]
test rax, rax
jns 0x140120e31
mov rcx, rax
shr rcx, 1
and eax, 1
or rax, rcx
xorps xmm0, xmm0
cvtsi2ss xmm0, rax
addss xmm0, xmm0
jmp 0x140120e39
xorps xmm0, xmm0
cvtsi2ss xmm0, rax
divss xmm0, dword [rbp + 0x40]
call fcn.14015c3fc
cvttss2si rcx, xmm0
mov rdx, rcx
subss xmm0, dword [0x1402d4098]
cvttss2si rax, xmm0
sar rdx, 0x3f
and rax, rdx
or rax, rcx
cmp rbx, 3
jb 0x140120eec
mov rcx, rbx
shr rcx, 1
movabs rdx, 0x5555555555555555
and rcx, rdx
mov rdx, rbx
sub rdx, rcx
mov rcx, rdx
shr rcx, 2
movabs r8, 0x3333333333333333
and rdx, r8
and rcx, r8
add rcx, rdx
mov rdx, rcx
shr rdx, 4
add rdx, rcx
movabs rcx, 0xf0f0f0f0f0f0f0f
and rdx, rcx
movabs rcx, 0x101010101010101
imul rdx, rcx
shr rdx, 0x38
cmp edx, 1
ja 0x140120eec
lea rcx, [rax - 1]
bsr rcx, rcx
xor ecx, 0x3f
neg cl
mov edx, 1
shl rdx, cl
cmp rax, 2
cmovb rdx, rax
jmp 0x140120ef7
mov rcx, rax
call fcn.1400cd977
mov rdx, rax
cmp rdi, rdx
cmova rdx, rdi
cmp rdx, rbx
jae 0x1401210d0
mov rcx, rsi
call fcn.14020d7c0
jmp 0x1401210d0
mov r14, r15
jmp 0x140120fd8
lea rdx, [rbx - 1]
and rax, rdx
jmp 0x140120f38
cmp r9d, 1
jbe 0x140120f1c
cmp rax, rbx
jb 0x140120f38
xor edx, edx
div rbx
mov rax, rdx
cmp rax, r14
je 0x140120048
mov ecx, 0x40
call fcn.14013a6b4
mov r13, rax
mov rax, qword [rsp + 0x48]
movups xmm0, xmmword [rax]
movups xmmword [r13 + 0x10], xmm0
xorps xmm0, xmm0
movups xmmword [r13 + 0x20], xmm0
movups xmmword [r13 + 0x30], xmm0
mov qword [r13 + 8], r15
mov qword [r13], 0
mov rax, qword [rbp + 0x38]
inc rax
jns 0x140120f97
mov rcx, rax
shr rcx, 1
and eax, 1
or rax, rcx
xorps xmm0, xmm0
cvtsi2ss xmm0, rax
addss xmm0, xmm0
jmp 0x140120f9f
xorps xmm0, xmm0
cvtsi2ss xmm0, rax
mov rcx, rbx
shr rcx, 1
mov eax, ebx
and eax, 1
or rax, rcx
test rbx, rbx
jns 0x140120fc0
xorps xmm1, xmm1
cvtsi2ss xmm1, rax
addss xmm1, xmm1
jmp 0x140120fc8
xorps xmm1, xmm1
cvtsi2ss xmm1, rbx
movss xmm2, dword [rbp + 0x40]
je 0x14012103c
mulss xmm1, xmm2
ucomiss xmm0, xmm1
ja 0x14012103c
mov rcx, qword [rsi]
mov rax, qword [rcx + r14*8]
test rax, rax
jne 0x14012102e
lea rax, [rbp + 0x30]
mov rdx, qword [rbp + 0x30]
mov qword [r13], rdx
mov qword [rbp + 0x30], r13
mov qword [rcx + r14*8], rax
mov rax, qword [r13]
test rax, rax
je 0x140121025
mov rax, qword [rax + 8]
lea rcx, [rbx - 1]
test rbx, rcx
je 0x140121037
cmp rax, rbx
jb 0x14012101b
xor edx, edx
div rbx
mov rax, rdx
shl rax, 3
add rax, qword [rsi]
mov qword [rax], r13
inc qword [rbp + 0x38]
jmp 0x140120054
mov rcx, qword [rax]
mov qword [r13], rcx
jmp 0x140121022
and rax, rcx
jmp 0x14012101b
divss xmm0, xmm2
call fcn.14015c3fc
cvttss2si rcx, xmm0
mov rdx, rcx
subss xmm0, dword [0x1402d4098]
sar rdx, 0x3f
cvttss2si rax, xmm0
and rax, rdx
or rax, rcx
lea rcx, [rbx + rbx]
mov edi, 1
cmp rbx, 3
jae 0x140121138
or rdi, rcx
cmp rdi, rax
cmovbe rdi, rax
cmp rdi, 1
jne 0x140121105
mov edi, 2
cmp rbx, 2
jae 0x140120e05
lea rcx, [rdi*8]
call fcn.14013a6b4
mov rcx, qword [rsi]
mov qword [rsi], rax
test rcx, rcx
jne 0x1401210e5
mov qword [rbp + 0x28], rdi
xor eax, eax
mov rcx, qword [rsi]
mov qword [rcx + rax*8], 0
inc rax
cmp rdi, rax
jne 0x1401210b4
mov r8, qword [rbp + 0x30]
test r8, r8
jne 0x14012114a
mov rbx, qword [rbp + 0x28]
lea r14, [rbx - 1]
test rbx, r14
jne 0x1401210ec
and r14, r15
jmp 0x140120fd8
call fcn.14013a6ac
jmp 0x1401210ae
cmp r15, rbx
jb 0x140120f14
mov rax, r15
xor edx, edx
div rbx
mov r14, rdx
jmp 0x140120fd8
lea rax, [rdi - 1]
test rdi, rax
je 0x14012111d
mov rcx, rdi
call fcn.1400cd977
mov rdi, rax
mov rbx, qword [rbp + 0x28]
cmp rdi, rbx
jbe 0x140120e05
mov rax, rdi
shr rax, 0x3d
je 0x140121096
jmp 0x1401217fe
lea rdx, [rbx - 1]
xor edi, edi
test rbx, rdx
setne dil
jmp 0x140121077
lea r10, [rbp + 0x30]
mov rcx, qword [r8 + 8]
mov rax, rdi
shr rax, 1
movabs rdx, 0x5555555555555555
and rax, rdx
mov rdx, rdi
sub rdx, rax
mov rax, rdx
movabs r9, 0x3333333333333333
and rax, r9
shr rdx, 2
and rdx, r9
add rdx, rax
mov r9, rdx
shr r9, 4
add r9, rdx
movabs rax, 0xf0f0f0f0f0f0f0f
and r9, rax
movabs rax, 0x101010101010101
imul r9, rax
shr r9, 0x38
cmp r9, 1
jbe 0x14012123e
cmp rcx, rdi
jb 0x1401211c8
mov rax, rcx
xor edx, edx
div rdi
mov rcx, rdx
mov rax, qword [rsi]
mov qword [rax + rcx*8], r10
mov r10, qword [r8]
test r10, r10
je 0x1401210d0
mov rax, qword [r10 + 8]
cmp r9d, 1
jbe 0x140121235
cmp rax, rdi
jb 0x1401211f2
xor edx, edx
div rdi
mov rax, rdx
cmp rax, rcx
je 0x140121230
mov rdx, qword [rsi]
cmp qword [rdx + rax*8], 0
jne 0x140121210
mov qword [rdx + rax*8], r8
mov r8, r10
mov r10, qword [r10]
mov rcx, rax
jmp 0x1401211d2
mov rdx, qword [r10]
mov qword [r8], rdx
mov rdx, qword [rsi]
mov rdx, qword [rdx + rax*8]
mov rdx, qword [rdx]
mov qword [r10], rdx
mov rdx, qword [rsi]
mov rax, qword [rdx + rax*8]
mov qword [rax], r10
mov r10, r8
mov rax, rcx
jmp 0x140121205
lea rdx, [rdi - 1]
and rax, rdx
jmp 0x1401211f2
lea rax, [rdi - 1]
and rcx, rax
jmp 0x1401211c8
lea r14, [rbx - 1]
and r14, r15
jmp 0x14012001e
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
jmp 0x14011f837
lea rbx, [rdi + 0x38]
add rdi, 0x48
mov ecx, 0x40
call fcn.14013a6b4
mov rsi, rax
lea rax, [0x1402e4000]
mov qword [rsi], rax
mov dword [rsi + 8], 3
movups xmm0, xmmword [rdi]
movups xmmword [rsi + 0x10], xmm0
mov rax, qword [rsp + 0x30]
movups xmm0, xmmword [rax]
movups xmmword [rsi + 0x20], xmm0
mov rax, 0xffffffffffffffff
mov qword [rsi + 0x30], rax
lea rcx, [0x1402e4080]
mov qword [rsi], rcx
mov qword [rsi + 0x38], rax
mov ecx, 0x18
call fcn.14013a6b4
movups xmm0, xmmword [rbx]
movups xmmword [rax], xmm0
mov qword [rax + 0x10], rsi
mov rsi, qword [r15 + 0xd8]
mov qword [r15 + 0xd8], rax
test rsi, rsi
je 0x14012131a
jmp 0x140121334
add r15, 0xb8
movaps xmm0, xmmword [rsp + 0xa0]
lea rsi, [rsp + 0x80]
movaps xmmword [rsi], xmm0
mov rax, qword [r8]
mov qword [r8], 0
mov qword [rsi + 0x10], rax
mov rcx, r15
mov rdx, rsi
call fcn.1400d0310
mov rcx, qword [rsi + 0x10]
test rcx, rcx
jne 0x140121321
xor edi, edi
jmp 0x1401203ad
mov rax, qword [rcx]
mov rax, qword [rax]
mov edx, 1
call qword [case.0x14017aab5.0]
jmp 0x14012131a
mov rcx, qword [rsi + 0x10]
mov qword [rsi + 0x10], 0
test rcx, rcx
je 0x140121356
mov rax, qword [rcx]
mov rax, qword [rax]
mov edx, 1
call qword [case.0x14017aab5.0]
mov rcx, rsi
call fcn.14013a6ac
jmp 0x14012131a
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
jmp 0x14011f8b4
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
jmp 0x1401204a4
lea rdx, [r10 - 1]
and rax, rdx
jmp 0x14011fd43
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
jmp 0x140120594
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
jmp 0x140120677
xor r11d, r11d
cmp rsi, rdx
sbb r11d, r11d
or r11b, 1
jmp 0x14011fbdf
mov rcx, rax
mov qword [rsp + 0x40], rax
call fcn.14009bd00
mov rcx, qword [rsp + 0x40]
call fcn.14013a6ac
jmp 0x14012140f
lea rcx, [rcx + rcx*4]
lea rsi, [rax + rcx*8]
add rsi, 0x20
movups xmm0, xmmword [r12]
movups xmmword [rsi - 0x20], xmm0
movups xmm0, xmmword [r12 + 0x10]
movups xmmword [rsi - 0x10], xmm0
mov rax, qword [r12 + 0x20]
mov qword [r12 + 0x20], 0
mov rcx, qword [rsi]
mov qword [rsi], rax
test rcx, rcx
je 0x14012140f
mov rax, rcx
lock dec dword [rcx]
je 0x1401213b6
add r12, 0x28
add rsi, 0x28
add r15, 0x28
cmp r12, r13
jne 0x1401213db
mov r13, qword [rdi + 0x30]
jmp 0x14011fc76
test r15, r15
je 0x14012181d
mov qword [r15], rbp
mov qword [r15 + 8], rsi
movaps xmm0, xmmword [rsp + 0xb0]
movups xmmword [r15 + 0x10], xmm0
mov rax, qword [rsp + 0x38]
mov qword [r15 + 0x20], rax
add r15, 0x28
mov qword [r13 + 0x30], r15
jmp 0x1401202ee
int3
mov edx, eax
jmp 0x14011fe38
int3
int3
xor eax, eax
jmp 0x14011fa61
int3
int3
xor eax, eax
jmp 0x14011fb66
int3
mov r15, r13
jmp 0x14011fc83
mov r11b, 0xff
jmp 0x14011fbd7
int3
xor esi, esi
jmp 0x1401201dc
mov r15, r9
jmp 0x1401201a2
int3
int3
int3
int3
mov rsi, qword [r12 - 8]
add r12, 0xffffffffffffffd8
test rsi, rsi
je 0x1401214d4
lock dec dword [rsi]
jne 0x1401214d4
mov rcx, rsi
call fcn.14009bd00
mov rcx, rsi
call fcn.14013a6ac
cmp r12, r15
jne 0x1401214b1
mov rcx, qword [rdi + 0x28]
jmp 0x14011fdd7
setb cl
test cl, cl
je 0x14011fc0c
mov rdx, rax
mov r12, r15
jmp 0x14011fc13
dec r10
and r8, r10
jmp 0x14011fda0
lea rdx, [r10 - 1]
and rdx, r8
jmp 0x14011fd6a
mov rdx, rax
mov r15, r13
mov r12, r13
jmp 0x14011fc13
int3
add r10, 0x28
not r9
add r9, r8
mov r15, r10
jmp 0x14011fbe8
mov rcx, rsi
call fcn.14009bd00
mov rcx, rsi
call fcn.14013a6ac
jmp 0x14011fc76
lock dec dword [r14]
jne 0x1401202dc
mov rcx, r14
call fcn.14009bd00
mov rcx, r14
call fcn.14013a6ac
jmp 0x1401202dc
mov r8, qword [rdx + 8]
cmp r8, rsi
mov r10d, 0
sbb r10d, r10d
or r10b, 1
cmp r8, rsi
movzx r8d, r10b
cmove r8d, r9d
jmp 0x1401200da
movups xmm0, xmmword [rdi + 8]
movaps xmmword [rsp + 0x80], xmm0
add rbx, qword [rdi + 0x68]
mov r14, qword [rdi + 0x50]
lea rax, [r14 + 1]
mov qword [rdi + 0x50], rax
add rdi, 0x18
mov ecx, 0x40
call fcn.14013a6b4
mov rsi, rax
mov qword [rsp + 0x20], rbx
mov rcx, rax
mov rdx, rdi
mov r8, qword [rsp + 0x30]
mov r9, r14
call fcn.14020dcd0
cmp qword [rsp + 0xd8], 0
je 0x14012160b
xor edi, edi
mov ebx, 0x108
mov r14, qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov rax, qword [rsp + 0xd0]
mov rax, qword [rax + rdi*8]
mov rcx, qword [rax + 0x10]
add rcx, rbx
call r14
inc rdi
cmp rdi, qword [rsp + 0xd8]
jb 0x1401215e8
mov rax, qword [rsp + 0x28]
mov rcx, qword [rax + 0x18]
lea r8, [rsp + 0xc8]
mov qword [r8], rsi
lea rdx, [rsp + 0x80]
call fcn.1401b32b0
jmp 0x1401205f8
mov rax, qword [rsp + 0x30]
movups xmm0, xmmword [rax]
movaps xmmword [rsp + 0x80], xmm0
lea r9, [rdi + 0x28]
mov rcx, r8
mov rdx, rdi
mov r8, r15
mov r14, r11
call fcn.14020d950
mov qword [rdi], rbp
mov qword [rdi + 8], rsi
lea rax, [rbx + rbx*4]
movaps xmm0, xmmword [rsp + 0x80]
movups xmmword [r14 + rax*8 + 0x10], xmm0
mov rsi, qword [r14 + rax*8 + 0x20]
mov rcx, qword [rsp + 0x38]
mov qword [r14 + rax*8 + 0x20], rcx
test rsi, rsi
je 0x1401202ee
lock dec dword [rsi]
jne 0x1401202ee
jmp 0x1401216bf
cmp rsi, qword [rdi + 8]
je 0x1401216a0
setb cl
jmp 0x14012012b
cmp qword [rsp + 0x38], 0
je 0x1401202ee
mov rax, qword [rsp + 0x38]
lock dec dword [rax]
jne 0x1401202ee
mov rsi, qword [rsp + 0x38]
mov rcx, rsi
call fcn.14009bd00
jmp 0x1401202e6
test r14, r14
jle 0x1401216f8
lea rax, [rbx + 1]
shr rax, 0x3f
add rax, rbx
inc rax
sar rax, 1
neg rax
lea rax, [rax + rax*4]
lea rbp, [rbp + rax*8]
mov rcx, qword [rsp + 0x60]
jmp 0x1401201fa
add rbx, rbx
cmp r12, qword [rsp + 0x70]
mov eax, 1
cmovne rax, rbx
movabs rcx, 0x666666666666666
cmp rax, rcx
ja 0x140121820
mov rbx, rax
shr rbx, 2
shl rax, 3
lea r15, [rax + rax*4]
mov rcx, r15
call fcn.14013a6b4
lea rcx, [rbx + rbx*4]
lea rbp, [rax + rcx*8]
add rax, r15
mov rbx, rax
test rsi, rsi
je 0x14012174e
mov rcx, rsi
call fcn.14013a6ac
mov rcx, qword [rsp + 0x60]
mov r10, rbx
jmp 0x1401201fa
movups xmm0, xmmword [rdi + 8]
movaps xmmword [rsp + 0x80], xmm0
mov r14, qword [rdi + 0x50]
lea rax, [r14 + 1]
mov qword [rdi + 0x50], rax
add rdi, 0x18
mov ecx, 0x40
call fcn.14013a6b4
mov rsi, rax
mov qword [rsp + 0x20], rbx
mov rcx, rax
mov rdx, rdi
mov r8, qword [rsp + 0x30]
mov r9, r14
call fcn.14020dd10
cmp qword [rsp + 0xd8], 0
je 0x1401217d8
xor edi, edi
mov ebx, 0x108
mov r14, qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov rax, qword [rsp + 0xd0]
mov rax, qword [rax + rdi*8]
mov rcx, qword [rax + 0x10]
add rcx, rbx
call r14
inc rdi
cmp rdi, qword [rsp + 0xd8]
jb 0x1401217b5
mov rax, qword [rsp + 0x28]
mov rcx, qword [rax + 0x18]
lea r8, [rsp + 0xc8]
mov qword [r8], rsi
lea rdx, [rsp + 0x80]
call fcn.1401b32b0
jmp 0x140120515
int3
cmp rcx, rsi
je 0x140120a9a
mov r8, qword [rcx]
cmp qword [r8 + 0x38], rdx
sete r9b
jmp 0x140120847
int3
int3
int3