Function at 0x1400d6220
Capabilities:
Encode data using base64

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x78
mov r14, r9
mov qword [rsp + 0x50], r8
mov qword [rsp + 0x28], rdx
mov rdi, rcx
mov rsi, qword [rsp + 0xe8]
mov rbx, qword [rsp + 0xe0]
mov rax, qword [0x140327038]
xor rax, rsp
mov qword [rsp + 0x70], rax
mov rax, qword [r9]
mov qword [rsp + 0x38], rax
mov rax, qword [r9 + 8]
mov qword [rsp + 0x40], rax
mov r15, qword [0x14033b2d0]
cmp r15, 1
jbe 0x1400d7657
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x1400d7385
mov rax, qword [r15 + 0x1008]
cmp rax, 0x100
je 0x1400d735c
lea rcx, [rax + 1]
mov qword [r15 + 0x1008], rcx
shl rax, 4
mov r12, qword [r15 + rax + 8]
mov r13, qword [r15 + rax + 0x10]
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov r8, qword [rsp + 0x28]
lea rbp, [r8 + 8]
movups xmm0, xmmword [r8 + 8]
movups xmmword [rsi], xmm0
lea rax, [r8 + 0x18]
movups xmm0, xmmword [r8 + 0x18]
movups xmmword [rsi + 0x10], xmm0
mov rcx, qword [r8 + 0x50]
lea rdx, [rcx + 1]
mov qword [r8 + 0x50], rdx
mov qword [rsi + 0x30], rcx
mov rcx, qword [rsp + 0x50]
movups xmm0, xmmword [rcx]
movups xmmword [rsi + 0x38], xmm0
mov qword [rsi + 0x48], r12
mov qword [rsi + 0x50], r13
mov dword [r8 + 4], 2
cmp byte [r8 + 0xe9], 0
jne 0x1400d7112
mov qword [rsp + 0x48], r12
mov qword [r14], r12
mov qword [rsp + 0x30], r13
mov qword [r14 + 8], r13
movups xmm0, xmmword [rbp]
movups xmmword [rbx], xmm0
movups xmm0, xmmword [rax]
movups xmmword [rbx + 0x10], xmm0
movups xmm0, xmmword [rdi]
movups xmmword [rbx + 0x20], xmm0
mov rax, qword [rsp + 0x38]
mov qword [rbx + 0x30], rax
mov rax, qword [rsp + 0x40]
mov qword [rbx + 0x38], rax
mov rax, qword [r8 + 0x60]
mov qword [rbx + 0x40], rax
mov rax, qword [r8 + 0xa0]
mov qword [rbx + 0x48], rax
mov rax, qword [r8 + 0x78]
mov qword [rbx + 0x50], rax
movzx eax, byte [r8 + 0xe9]
mov byte [rbx + 0x58], al
mov dword [rbx + 0x59], 0
mov dword [rbx + 0x5c], 0
mov r9, qword [r8 + 0x18]
mov r10, qword [r8 + 0x20]
test r10, r10
sete al
test r9, r9
je 0x1400d63a0
xor eax, eax
test al, al
jne 0x1400d685f
mov r11, qword [rdi + 0x58]
test r11, r11
je 0x1400d685f
lea r15, [rdi + 0x50]
mov rax, qword [rsp + 0x28]
mov rbx, qword [rax + 8]
mov r14, qword [rax + 0x10]
mov rax, rbx
shr rax, 0x20
mov rcx, r14
shr rcx, 0x20
mov edx, ebx
imul rdx, rdx, 0x32348c9d
imul rax, rax, 0x24e62a03
add rax, rdx
mov edx, r14d
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 0x1400d70fa
mov r8, rcx
cmp rcx, r11
jb 0x1400d647a
mov rax, rcx
xor edx, edx
div r11
mov r8, rdx
mov qword [rsp + 0x60], r15
mov rax, qword [r15]
mov rax, qword [rax + r8*8]
test rax, rax
je 0x1400d685f
mov r15, qword [rax]
test r15, r15
je 0x1400d685f
lea r12, [r11 - 1]
mov rax, qword [r15 + 8]
cmp rax, rcx
jne 0x1400d70ce
cmp qword [r15 + 0x18], r14
sete al
cmp qword [r15 + 0x10], rbx
jne 0x1400d741b
test al, al
je 0x1400d70e9
mov r11, qword [r15 + 0x28]
test r11, r11
je 0x1400d685f
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 0x1400d7305
mov r8, rcx
cmp rcx, r11
jb 0x1400d6587
mov rax, rcx
xor edx, edx
div r11
mov r8, rdx
mov rax, qword [r15 + 0x20]
mov rax, qword [rax + r8*8]
test rax, rax
je 0x1400d685f
mov r12, qword [rax]
test r12, r12
je 0x1400d685f
mov rax, qword [r12 + 8]
cmp rax, rcx
jne 0x1400d7128
cmp qword [r12 + 0x18], r10
sete al
cmp qword [r12 + 0x10], r9
jne 0x1400d743b
test al, al
je 0x1400d7143
mov rax, qword [r12 + 0x28]
mov r14, qword [r12 + 0x30]
mov rcx, r14
mov rdx, r14
mov rbx, r14
mov rsi, r14
sub rcx, rax
je 0x1400d6678
sar rcx, 3
movabs rdx, 0xcccccccccccccccd
imul rcx, rdx
mov rbx, rax
mov rdx, rcx
shr rdx, 1
lea r9, [rdx + rdx*4]
lea r8, [rbx + r9*8]
mov r10, qword [rbx + r9*8]
cmp r10, qword [rsp + 0x38]
jne 0x1400d7371
mov r10, qword [r8 + 8]
cmp r10, qword [rsp + 0x40]
jb 0x1400d7445
mov r9b, 1
cmp r10, qword [rsp + 0x40]
jne 0x1400d663a
xor r9d, r9d
test r9b, r9b
js 0x1400d7393
mov rcx, rdx
test rdx, rdx
jne 0x1400d6604
cmp rbx, r14
je 0x1400d749e
mov rcx, qword [rsp + 0x38]
cmp rcx, qword [rbx]
jne 0x1400d7488
mov rcx, qword [rsp + 0x40]
cmp rcx, qword [rbx + 8]
jne 0x1400d7488
lea rsi, [rbx + 0x28]
mov rdx, rax
sub rbx, rdx
mov rcx, rbx
sar rcx, 3
movabs r8, 0xcccccccccccccccd
imul rcx, r8
sub rsi, rdx
mov rdx, rsi
sar rdx, 3
imul rdx, r8
cmp rdx, rcx
jl 0x1400d7442
je 0x1400d744d
add rbx, rax
add rsi, rax
cmp rsi, r14
je 0x1400d66d8
jmp 0x1400d73bb
mov r13, qword [r14 - 8]
add r14, 0xffffffffffffffd8
test r13, r13
je 0x1400d66d8
lock dec dword [r13]
je 0x1400d759a
cmp r14, rbx
jne 0x1400d66c0
mov qword [r12 + 0x30], rbx
mov rax, qword [r12 + 0x28]
cmp rax, rbx
jne 0x1400d6854
mov r9, qword [r12]
mov rcx, qword [r12 + 8]
mov r10, qword [r15 + 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 rbx, rdx
shr rbx, 4
add rbx, rdx
movabs rax, 0xf0f0f0f0f0f0f0f
and rbx, rax
movabs rax, 0x101010101010101
imul rbx, rax
shr rbx, 0x38
cmp rbx, 1
jbe 0x1400d7311
cmp rcx, r10
jb 0x1400d6773
mov rax, rcx
xor edx, edx
div r10
mov rcx, rdx
mov rsi, qword [r15 + 0x20]
mov rax, qword [rsi + rcx*8]
mov r11, rax
mov rax, qword [rax]
cmp rax, r12
jne 0x1400d677b
lea rax, [r15 + 0x30]
cmp r11, rax
je 0x1400d67ae
mov rax, qword [r11 + 8]
cmp ebx, 1
jbe 0x1400d7350
cmp rax, r10
jb 0x1400d67a9
xor edx, edx
div r10
mov rax, rdx
cmp rax, rcx
je 0x1400d67e1
test r9, r9
je 0x1400d67d5
mov r8, qword [r9 + 8]
cmp ebx, 1
jbe 0x1400d7330
mov rdx, r8
cmp r8, r10
jb 0x1400d67d0
mov rax, r8
xor edx, edx
div r10
cmp rdx, rcx
je 0x1400d67ee
mov qword [rsi + rcx*8], 0
mov r9, qword [r12]
test r9, r9
je 0x1400d7348
mov r8, qword [r9 + 8]
cmp ebx, 1
jbe 0x1400d7325
cmp r8, r10
jb 0x1400d6807
mov rax, r8
xor edx, edx
div r10
mov r8, rdx
cmp r8, rcx
je 0x1400d6818
mov rax, qword [r15 + 0x20]
mov qword [rax + r8*8], r11
mov r9, qword [r12]
mov qword [r11], r9
mov qword [r12], 0
dec qword [r15 + 0x38]
mov rsi, qword [r12 + 0x28]
test rsi, rsi
je 0x1400d684c
mov rbx, qword [r12 + 0x30]
mov rcx, rsi
cmp rbx, rsi
jne 0x1400d7455
mov qword [r12 + 0x30], rsi
call fcn.14013a6ac
mov rcx, r12
call fcn.14013a6ac
cmp qword [r15 + 0x38], 0
je 0x1400d7583
mov rax, qword [rsp + 0x50]
movups xmm0, xmmword [rax]
movups xmmword [rbp], xmm0
mov rax, qword [rsp + 0x28]
mov rdx, qword [rsp + 0x48]
mov qword [rax + 0x18], rdx
mov rcx, qword [rsp + 0x30]
mov qword [rax + 0x20], rcx
mov qword [rax + 0x50], 1
test rcx, rcx
setne al
mov cl, 1
test rdx, rdx
je 0x1400d7411
test cl, cl
je 0x1400d6d7d
movabs r12, 0xaaaaaaaaaaaaaaaa
lea r15, [rdi + 0x50]
mov rax, qword [rsp + 0x50]
mov rcx, qword [rax]
mov r8, qword [rax + 8]
mov rax, rcx
shr rax, 0x20
mov r13, r8
shr r13, 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 r13, r9
add r13, rdx
add r13, rax
mov rbx, qword [rdi + 0x58]
mov rbp, r12
test rbx, rbx
je 0x1400d718b
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 0x1400d7106
mov rbp, r13
cmp r13, rbx
jb 0x1400d6981
mov rax, r13
xor edx, edx
div rbx
mov rbp, rdx
mov rax, qword [r15]
mov rax, qword [rax + rbp*8]
test rax, rax
je 0x1400d718b
mov r14, qword [rax]
test r14, r14
je 0x1400d718b
lea r10, [rbx - 1]
mov rax, qword [r14 + 8]
cmp rax, r13
jne 0x1400d716f
cmp qword [r14 + 0x10], rcx
jne 0x1400d715c
cmp qword [r14 + 0x18], r8
jne 0x1400d715c
lea rbx, [r14 + 0x20]
mov rcx, qword [rsp + 0x48]
mov rax, rcx
shr rax, 0x20
mov rdx, qword [rsp + 0x30]
mov r15, rdx
shr r15, 0x20
mov ecx, ecx
imul rcx, rcx, 0x32348c9d
imul rax, rax, 0x24e62a03
add rax, rcx
mov ecx, edx
imul rcx, rcx, 0x37da1fb9
mov edx, 0xc54622fd
imul r15, rdx
add r15, rcx
add r15, rax
mov r13, qword [r14 + 0x28]
test r13, r13
je 0x1400d6a9b
mov rax, r13
shr rax, 1
movabs rcx, 0x5555555555555555
and rax, rcx
mov rdx, r13
sub rdx, rax
mov rax, rdx
movabs rcx, 0x3333333333333333
and rax, rcx
shr rdx, 2
and rdx, rcx
add rdx, rax
mov rcx, rdx
shr rcx, 4
add rcx, rdx
movabs rax, 0xf0f0f0f0f0f0f0f
and rcx, rax
movabs rax, 0x101010101010101
imul rcx, rax
shr rcx, 0x38
cmp rcx, 1
jbe 0x1400d733c
mov r12, r15
cmp r15, r13
jb 0x1400d6a8f
mov rax, r15
xor edx, edx
div r13
mov r12, rdx
mov rax, qword [rbx]
mov rdi, qword [rax + r12*8]
test rdi, rdi
jne 0x1400d6af3
mov ecx, 0x40
call fcn.14013a6b4
mov rdi, rax
mov rax, qword [rsp + 0x48]
mov qword [rdi + 0x10], rax
mov rax, qword [rsp + 0x30]
mov qword [rdi + 0x18], rax
xorps xmm0, xmm0
movups xmmword [rdi + 0x20], xmm0
movups xmmword [rdi + 0x30], xmm0
mov qword [rdi + 8], r15
mov qword [rdi], 0
mov rax, qword [r14 + 0x38]
inc rax
jns 0x1400d6b49
mov rcx, rax
shr rcx, 1
and eax, 1
or rax, rcx
xorps xmm0, xmm0
cvtsi2ss xmm0, rax
addss xmm0, xmm0
jmp 0x1400d6b51
lea r8, [r13 - 1]
mov rdi, qword [rdi]
test rdi, rdi
je 0x1400d6a9b
mov rax, qword [rdi + 8]
cmp rax, r15
je 0x1400d6b27
cmp ecx, 1
jbe 0x1400d731d
cmp rax, r13
jb 0x1400d6b1e
xor edx, edx
div r13
mov rax, rdx
cmp rax, r12
jne 0x1400d6a9b
mov rax, qword [rsp + 0x30]
cmp qword [rdi + 0x18], rax
sete al
mov rdx, qword [rsp + 0x48]
cmp qword [rdi + 0x10], rdx
je 0x1400d6b40
xor eax, eax
test al, al
je 0x1400d6af7
jmp 0x1400d6bef
xorps xmm0, xmm0
cvtsi2ss xmm0, rax
mov rcx, r13
shr rcx, 1
mov eax, r13d
and eax, 1
or rax, rcx
test r13, r13
jns 0x1400d6b7b
xorps xmm1, xmm1
cvtsi2ss xmm1, rax
addss xmm1, xmm1
jmp 0x1400d6b83
mov rcx, qword [rax]
mov qword [rdi], rcx
jmp 0x1400d6be8
xorps xmm1, xmm1
cvtsi2ss xmm1, r13
movss xmm2, dword [r14 + 0x40]
je 0x1400d6d9c
mulss xmm1, xmm2
ucomiss xmm0, xmm1
ja 0x1400d6d9c
mov rcx, qword [rbx]
mov rax, qword [rcx + r12*8]
test rax, rax
jne 0x1400d6b73
lea rax, [r14 + 0x30]
mov rdx, qword [r14 + 0x30]
mov qword [rdi], rdx
mov qword [r14 + 0x30], rdi
mov qword [rcx + r12*8], rax
mov rax, qword [rdi]
test rax, rax
je 0x1400d6beb
mov rax, qword [rax + 8]
lea rcx, [r13 - 1]
test r13, rcx
je 0x1400d6f9b
cmp rax, r13
jb 0x1400d6be1
xor edx, edx
div r13
mov rax, rdx
shl rax, 3
add rax, qword [rbx]
mov qword [rax], rdi
inc qword [r14 + 0x38]
cmp qword [rsp + 0x28], 0
je 0x1400d6c10
mov eax, 1
mov rcx, qword [rsp + 0x28]
lock xadd dword [rcx], eax
cmp eax, 0x7fffffff
je 0x1400d7418
mov r12, qword [rdi + 0x28]
mov r14, qword [rdi + 0x30]
mov rcx, r14
mov rbp, r14
mov rax, r14
mov qword [rsp + 0x30], r14
sub rcx, r12
jne 0x1400d74ac
lea rcx, [rdi + 0x28]
mov qword [rsp + 0x48], rcx
sub rbp, rax
mov rsi, rbp
sar rsi, 3
movabs rcx, 0xcccccccccccccccd
imul rsi, rcx
lea rbx, [r12 + rbp]
cmp rbx, r14
jne 0x1400d7767
mov rcx, qword [rdi + 0x38]
cmp r14, rcx
jb 0x1400d75de
movabs r8, 0x666666666666666
sub r14, rax
sar r14, 3
movabs rdx, 0xcccccccccccccccd
imul r14, rdx
inc r14
cmp r14, r8
ja 0x1400d7422
sub rcx, rax
sar rcx, 3
imul rcx, rdx
lea rax, [rcx + rcx]
cmp rax, r14
cmova r14, rax
movabs rax, 0x333333333333333
cmp rcx, rax
jae 0x1400d7425
test r14, r14
je 0x1400d742d
cmp r14, r8
ja 0x1400d7435
lea rax, [r14*8]
lea rcx, [rax + rax*4]
call fcn.14013a6b4
mov r13, rax
lea rax, [rsi + rsi*4]
lea r15, [rax*8]
add r15, r13
lea rax, [r14 + r14*4]
lea r10, [rax*8]
add r10, r13
cmp rsi, r14
je 0x1400d76a7
test r15, r15
je 0x1400d7438
mov rcx, qword [rsp + 0x38]
mov qword [r15], rcx
mov rax, qword [rsp + 0x40]
mov qword [r15 + 8], rax
mov qword [r15 + 0x10], rcx
mov qword [r15 + 0x18], rax
mov rax, qword [rsp + 0x28]
mov qword [r15 + 0x20], rax
mov rax, qword [rsp + 0x48]
mov rcx, qword [rax]
mov rax, r15
cmp rcx, rbx
jne 0x1400d7616
add r15, 0x28
mov rcx, qword [rdi + 0x30]
cmp rcx, rbx
jne 0x1400d7544
mov rsi, qword [rdi + 0x28]
mov qword [rdi + 0x28], rax
mov qword [rdi + 0x30], r15
mov qword [rdi + 0x38], r10
cmp rbx, rsi
jne 0x1400d75af
test rsi, rsi
jne 0x1400d77f3
mov rcx, qword [rsp + 0x70]
xor rcx, rsp
call fcn.14013d520
nop
add rsp, 0x78
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
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, [r13*2]
mov r12d, 1
cmp r13, 3
jb 0x1400d6de6
lea rdx, [r13 - 1]
xor r12d, r12d
test r13, rdx
setne r12b
or r12, rcx
cmp r12, rax
cmovbe r12, rax
cmp r12, 1
je 0x1400d6f81
lea rax, [r12 - 1]
test r12, rax
je 0x1400d6e13
mov rcx, r12
call fcn.1400cd977
mov r12, rax
mov r13, qword [r14 + 0x28]
cmp r12, r13
jbe 0x1400d6fb0
mov rax, r12
shr rax, 0x3d
jne 0x1400d7818
lea rcx, [r12*8]
call fcn.14013a6b4
mov rcx, qword [rbx]
mov qword [rbx], rax
test rcx, rcx
je 0x1400d6e46
call fcn.14013a6ac
mov qword [r14 + 0x28], r12
xor eax, eax
nop dword [rax]
mov rcx, qword [rbx]
mov qword [rcx + rax*8], 0
inc rax
cmp r12, rax
jne 0x1400d6e50
mov r8, qword [r14 + 0x30]
test r8, r8
je 0x1400d6f5b
lea r10, [r14 + 0x30]
mov rcx, qword [r8 + 8]
mov rax, r12
shr rax, 1
movabs rdx, 0x5555555555555555
and rax, rdx
mov rdx, r12
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 0x1400d70bc
cmp rcx, r12
jb 0x1400d6eee
mov rax, rcx
xor edx, edx
div r12
mov rcx, rdx
mov rax, qword [rbx]
mov qword [rax + rcx*8], r10
mov r10, qword [r8]
jmp 0x1400d6f07
mov qword [rdx + rax*8], r8
mov r8, r10
mov r10, qword [r10]
mov rcx, rax
test r10, r10
je 0x1400d6f5b
mov rax, qword [r10 + 8]
cmp r9d, 1
jbe 0x1400d6fa3
cmp rax, r12
jb 0x1400d6f27
xor edx, edx
div r12
mov rax, rdx
cmp rax, rcx
je 0x1400d6f56
mov rdx, qword [rbx]
cmp qword [rdx + rax*8], 0
je 0x1400d6efa
mov rdx, qword [r10]
mov qword [r8], rdx
mov rdx, qword [rbx]
mov rdx, qword [rdx + rax*8]
mov rdx, qword [rdx]
mov qword [r10], rdx
mov rdx, qword [rbx]
mov rax, qword [rdx + rax*8]
mov qword [rax], r10
mov r10, r8
mov rax, rcx
jmp 0x1400d6efe
mov r13, qword [r14 + 0x28]
lea r12, [r13 - 1]
test r13, r12
je 0x1400d6f93
cmp r15, r13
jb 0x1400d781b
mov rax, r15
xor edx, edx
div r13
mov r12, rdx
jmp 0x1400d6b9c
mov r12d, 2
cmp r13, 2
jb 0x1400d6e29
jmp 0x1400d6fb0
and r12, r15
jmp 0x1400d6b9c
and rax, rcx
jmp 0x1400d6be1
lea rdx, [r12 - 1]
and rax, rdx
jmp 0x1400d6f27
cmp r12, r13
jae 0x1400d6f5b
mov rax, qword [r14 + 0x38]
test rax, rax
jns 0x1400d6fd8
mov rcx, rax
shr rcx, 1
and eax, 1
or rax, rcx
xorps xmm0, xmm0
cvtsi2ss xmm0, rax
addss xmm0, xmm0
jmp 0x1400d6fe0
xorps xmm0, xmm0
cvtsi2ss xmm0, rax
divss xmm0, dword [r14 + 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 r13, 3
jb 0x1400d70af
mov rcx, r13
shr rcx, 1
movabs rdx, 0x5555555555555555
and rcx, rdx
mov rdx, r13
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 0x1400d70af
lea rcx, [rax - 1]
bsr rcx, rcx
xor ecx, 0x3f
neg cl
mov edx, 1
shl rdx, cl
cmp rax, 2
cmovb rdx, rax
cmp r12, rdx
cmova rdx, r12
cmp rdx, r13
jae 0x1400d6f5b
mov rcx, rbx
call fcn.14020d7c0
jmp 0x1400d6f5b
mov rcx, rax
call fcn.1400cd977
mov rdx, rax
jmp 0x1400d7092
lea rax, [r12 - 1]
and rcx, rax
jmp 0x1400d6eee
and rax, r12
jmp 0x1400d70e0
cmp esi, 1
jbe 0x1400d70c9
cmp rax, r11
jb 0x1400d70e0
xor edx, edx
div r11
mov rax, rdx
cmp rax, r8
jne 0x1400d685f
mov r15, qword [r15]
test r15, r15
jne 0x1400d649f
jmp 0x1400d685f
lea r8, [r11 - 1]
and r8, rcx
jmp 0x1400d647a
lea rbp, [rbx - 1]
and rbp, r13
jmp 0x1400d6981
mov byte [r8 + 0xe8], 1
jmp 0x1400d631f
lea rdx, [r11 - 1]
and rax, rdx
jmp 0x1400d713a
cmp esi, 1
jbe 0x1400d711f
cmp rax, r11
jb 0x1400d713a
xor edx, edx
div r11
mov rax, rdx
cmp rax, r8
jne 0x1400d685f
mov r12, qword [r12]
jmp 0x1400d659b
mov rbp, r13
jmp 0x1400d7223
and rbp, r13
jmp 0x1400d7223
mov r14, qword [r14]
test r14, r14
jne 0x1400d69a1
jmp 0x1400d718b
and rax, r10
jmp 0x1400d7182
cmp r9d, 1
jbe 0x1400d716a
cmp rax, rbx
jb 0x1400d7182
xor edx, edx
div rbx
mov rax, rdx
cmp rax, rbp
je 0x1400d69ae
mov ecx, 0x48
call fcn.14013a6b4
mov r14, rax
mov rax, qword [rsp + 0x50]
movups xmm0, xmmword [rax]
movups xmmword [r14 + 0x10], xmm0
xorps xmm0, xmm0
movups xmmword [r14 + 0x20], xmm0
movups xmmword [r14 + 0x30], xmm0
mov dword [r14 + 0x40], 0x3f800000
mov qword [r14 + 8], r13
mov qword [r14], 0
mov rax, qword [rdi + 0x68]
inc rax
jns 0x1400d71e8
mov rcx, rax
shr rcx, 1
and eax, 1
or rax, rcx
xorps xmm0, xmm0
cvtsi2ss xmm0, rax
addss xmm0, xmm0
jmp 0x1400d71f0
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 0x1400d720e
cvtsi2ss xmm1, rax
addss xmm1, xmm1
jmp 0x1400d7213
cvtsi2ss xmm1, rbx
movss xmm2, dword [rdi + 0x70]
je 0x1400d7284
mulss xmm1, xmm2
ucomiss xmm0, xmm1
ja 0x1400d7284
mov rcx, qword [r15]
mov rax, qword [rcx + rbp*8]
test rax, rax
jne 0x1400d7277
lea rax, [rdi + 0x60]
mov rdx, qword [rdi + 0x60]
mov qword [r14], rdx
mov qword [rdi + 0x60], r14
mov qword [rcx + rbp*8], rax
mov rax, qword [r14]
test rax, rax
je 0x1400d726e
mov rax, qword [rax + 8]
lea rcx, [rbx - 1]
test rbx, rcx
je 0x1400d727f
cmp rax, rbx
jb 0x1400d7264
xor edx, edx
div rbx
mov rax, rdx
shl rax, 3
add rax, qword [r15]
mov qword [rax], r14
inc qword [rdi + 0x68]
jmp 0x1400d69c2
mov rcx, qword [rax]
mov qword [r14], rcx
jmp 0x1400d726b
and rax, rcx
jmp 0x1400d7264
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, [rbx + rbx]
cmp rbx, 3
jb 0x1400d72fe
lea r8, [rbx - 1]
xor edx, edx
test rbx, r8
setne dl
or rdx, rcx
cmp rdx, rax
cmovbe rdx, rax
mov rcx, r15
call fcn.1400f0450
mov rbx, qword [rdi + 0x58]
lea rbp, [rbx - 1]
test rbx, rbp
je 0x1400d7154
cmp r13, rbx
jb 0x1400d714c
mov rax, r13
xor edx, edx
div rbx
mov rbp, rdx
jmp 0x1400d7223
mov edx, 1
jmp 0x1400d72c2
lea r8, [r11 - 1]
and r8, rcx
jmp 0x1400d6587
lea rax, [r10 - 1]
and rcx, rax
jmp 0x1400d6773
and rax, r8
jmp 0x1400d6b1e
dec r10
and r8, r10
jmp 0x1400d6807
lea rdx, [r10 - 1]
and rdx, r8
jmp 0x1400d67d0
lea r12, [r13 - 1]
and r12, r15
jmp 0x1400d6a8f
xor r9d, r9d
jmp 0x1400d6818
lea rdx, [r10 - 1]
and rax, rdx
jmp 0x1400d67a9
lea rcx, [r15 + 8]
mov edx, 0x1000
call fcn.1400ef5a5
xor eax, eax
jmp 0x1400d62a5
xor r9d, r9d
cmp r10, qword [rsp + 0x38]
sbb r9d, r9d
or r9b, 1
jmp 0x1400d663a
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
jmp 0x1400d6292
add r8, 0x28
not rdx
add rdx, rcx
mov rbx, r8
jmp 0x1400d6643
mov qword [rsp + 0x58], rcx
call fcn.14009bd00
mov rcx, qword [rsp + 0x58]
call fcn.14013a6ac
jmp 0x1400d73f6
lea rcx, [rcx + rcx*4]
lea r13, [rax + rcx*8]
add r13, 0x20
movups xmm0, xmmword [rsi]
movups xmmword [r13 - 0x20], xmm0
movups xmm0, xmmword [rsi + 0x10]
movups xmmword [r13 - 0x10], xmm0
mov rax, qword [rsi + 0x20]
mov qword [rsi + 0x20], 0
mov rcx, qword [r13]
mov qword [r13], rax
test rcx, rcx
je 0x1400d73f6
lock dec dword [rcx]
je 0x1400d73a5
add rsi, 0x28
add r13, 0x28
add rbx, 0x28
cmp rsi, r14
jne 0x1400d73c7
mov r14, qword [r12 + 0x30]
jmp 0x1400d66d8
mov ecx, eax
jmp 0x1400d689b
int3
xor eax, eax
jmp 0x1400d64bd
int3
mov r14, r8
jmp 0x1400d6cbe
xor r13d, r13d
jmp 0x1400d6ce4
int3
int3
xor eax, eax
jmp 0x1400d65c5
int3
mov r9b, 0xff
jmp 0x1400d6630
mov rbx, r14
jmp 0x1400d66e7
mov r13, qword [rbx - 8]
add rbx, 0xffffffffffffffd8
test r13, r13
je 0x1400d7479
lock dec dword [r13]
jne 0x1400d7479
mov rcx, r13
call fcn.14009bd00
mov rcx, r13
call fcn.14013a6ac
cmp rbx, rsi
jne 0x1400d7455
mov rcx, qword [r12 + 0x28]
jmp 0x1400d6842
setb cl
test cl, cl
je 0x1400d6671
mov rdx, rax
mov rsi, rbx
jmp 0x1400d6678
mov rdx, rax
mov rbx, r14
mov rsi, r14
jmp 0x1400d6678
sar rcx, 3
movabs rax, 0xcccccccccccccccd
imul rcx, rax
xor eax, eax
mov rsi, r12
mov qword [rsp + 0x30], r12
mov rdx, rcx
mov r11, qword [rsp + 0x40]
shr rdx, 1
lea r8, [rdx + rdx*4]
mov r9, qword [rsp + 0x30]
lea r8, [r9 + r8*8]
mov r9, qword [rsp + 0x38]
cmp qword [r8], r9
jne 0x1400d7535
mov r9, qword [r8 + 8]
cmp r9, r11
mov r10d, 0
sbb r10d, r10d
or r10b, 1
cmp r9, r11
movzx r9d, r10b
cmove r9d, eax
test r9b, r9b
jns 0x1400d751d
add r8, 0x28
not rdx
add rdx, rcx
mov qword [rsp + 0x30], r8
mov rcx, rdx
test rdx, rdx
jne 0x1400d74d0
mov rbp, qword [rsp + 0x30]
mov r12, rsi
mov rax, rsi
jmp 0x1400d6c2f
mov r9d, 0
sbb r9d, r9d
or r9b, 1
jmp 0x1400d7509
test r15, r15
je 0x1400d7823
movups xmm0, xmmword [rbx]
movups xmmword [r15], xmm0
movups xmm0, xmmword [rbx + 0x10]
movups xmmword [r15 + 0x10], xmm0
mov rdx, qword [rbx + 0x20]
mov qword [r15 + 0x20], rdx
mov qword [rbx + 0x20], 0
add r15, 0x28
add rbx, 0x28
cmp rbx, rcx
jne 0x1400d7544
mov rbx, qword [rdi + 0x30]
jmp 0x1400d6d5b
lea rdx, [rsp + 0x68]
mov rcx, qword [rsp + 0x60]
mov r8, r15
call fcn.1400f01e0
jmp 0x1400d685f
mov rcx, r13
call fcn.14009bd00
mov rcx, r13
call fcn.14013a6ac
jmp 0x1400d66d8
mov rdi, qword [rbx - 8]
add rbx, 0xffffffffffffffd8
test rdi, rdi
je 0x1400d6d6b
lock dec dword [rdi]
jne 0x1400d6d6b
mov rcx, rdi
call fcn.14009bd00
mov rcx, rdi
call fcn.14013a6ac
jmp 0x1400d6d6b
test r14, r14
je 0x1400d7832
mov rcx, qword [rsp + 0x38]
mov qword [r14], rcx
mov rax, qword [rsp + 0x40]
mov qword [r14 + 8], rax
mov qword [r14 + 0x10], rcx
mov qword [r14 + 0x18], rax
mov rax, qword [rsp + 0x28]
mov qword [r14 + 0x20], rax
add r14, 0x28
mov qword [rdi + 0x30], r14
jmp 0x1400d6d7d
mov rdx, rbx
mov r8, r15
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
je 0x1400d6d4a
jmp 0x1400d761c
lea rcx, [0x14033b2d0]
call fcn.14011a0e0
test al, al
je 0x1400d7826
lea r15, [0x14033b2d8]
mov r8d, 0x1008
mov rcx, r15
xor edx, edx
call fcn.14013f660
lea rcx, [0x14033b2d0]
mov qword [0x14033c2e0], 0x100
mov rdx, r15
xor r8d, r8d
mov r9, rcx
call fcn.14011a010
jmp 0x1400d6281
test rbp, rbp
jle 0x1400d76cd
lea rax, [rsi + 1]
shr rax, 0x3f
add rax, rsi
inc rax
sar rax, 1
neg rax
lea rax, [rax + rax*4]
lea r15, [r15 + rax*8]
jmp 0x1400d6d0b
add rsi, rsi
cmp qword [rsp + 0x30], r12
mov eax, 1
cmovne rax, rsi
movabs rcx, 0x666666666666666
cmp rax, rcx
ja 0x1400d7835
mov rsi, rax
shr rsi, 2
shl rax, 3
lea r14, [rax + rax*4]
mov rcx, r14
call fcn.14013a6b4
lea rcx, [rsi + rsi*4]
lea r15, [rax + rcx*8]
add rax, r14
mov rsi, rax
test r13, r13
je 0x1400d7723
mov rcx, r13
call fcn.14013a6ac
mov r10, rsi
jmp 0x1400d6d0b
mov rcx, qword [rsp + 0x40]
cmp rcx, qword [rbx + 8]
je 0x1400d773b
setb cl
jmp 0x1400d7774
cmp qword [rsp + 0x28], 0
je 0x1400d6d7d
mov rax, qword [rsp + 0x28]
lock dec dword [rax]
jne 0x1400d6d7d
mov rsi, qword [rsp + 0x28]
mov rcx, rsi
call fcn.14009bd00
jmp 0x1400d77f3
mov rcx, qword [rsp + 0x38]
cmp rcx, qword [rbx]
setb cl
je 0x1400d772b
test cl, cl
je 0x1400d773b
mov rcx, qword [rdi + 0x38]
cmp r14, rcx
jae 0x1400d6c6a
lea r9, [rbx + 0x28]
mov rcx, qword [rsp + 0x48]
mov rdx, rbx
mov r8, r14
call fcn.14020d950
mov rdx, qword [rsp + 0x38]
mov qword [rbx], rdx
mov rcx, qword [rsp + 0x40]
mov qword [rbx + 8], rcx
lea rax, [rsi + rsi*4]
mov qword [r12 + rax*8 + 0x10], rdx
mov qword [r12 + rax*8 + 0x18], rcx
mov rdi, qword [r12 + rax*8 + 0x20]
mov rcx, qword [rsp + 0x28]
mov qword [r12 + rax*8 + 0x20], rcx
test rdi, rdi
je 0x1400d6d7d
lock dec dword [rdi]
jne 0x1400d6d7d
mov rcx, rdi
call fcn.14009bd00
mov rcx, qword [rsp + 0x70]
xor rcx, rsp
call fcn.14013d520
mov rcx, rdi
jmp 0x1400d7803
mov rcx, qword [rsp + 0x70]
xor rcx, rsp
call fcn.14013d520
mov rcx, rsi
add rsp, 0x78
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp fcn.14013a6ac
int3
mov r12, r15
jmp 0x1400d6b9c
int3
mov r15, qword [0x14033b2d0]
jmp 0x1400d6281
int3
int3