Function at 0x140048f40
Capabilities:
Check for time delay via queryperformancecounter

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x718
movaps xmmword [rsp + 0x700], xmm6
mov r13d, r9d
mov qword [rsp + 0x60], r8
mov rbx, rdx
mov rbp, rcx
mov rax, qword [0x140327038]
xor rax, rsp
mov qword [rsp + 0x6f8], rax
movabs rcx, 0xaaaaaaaaaaaaaaaa
mov qword [rdx + 0x20], rcx
movaps xmm6, xmmword [0x1402e6d80]
movups xmmword [rdx + 0x10], xmm6
movups xmmword [rdx], xmm6
mov al, byte [0x14032a2b0]
mov byte [rsp + 0xaf], al
test al, 0x19
jne 0x14004a1a9
xor eax, eax
mov qword [rsp + 0xe8], rax
mov r12, rcx
mov qword [rsp + 0xf0], rcx
mov rdi, qword [rbp + 0x70]
jmp 0x140049031
tzcnt r15, r14
mov rsi, qword [rdi + r15*8 + 0x10]
test rsi, rsi
je 0x140049af5
mov eax, 1
lock xadd dword [rsi], eax
test eax, eax
jle 0x1400499fc
cmp eax, 0x7fffffff
je 0x1400499f9
mov rax, qword [rdi + r15*8 + 0x10]
mov rax, qword [rax + 8]
mov rcx, rsi
call qword [case.0x14017aab5.0]
lock dec dword [rsi]
je 0x140049b01
btc r14, r15
jmp 0x140049025
xor r12d, r12d
jmp 0x14004910c
xor r14d, r14d
xchg qword [rdi], r14
test r14, r14
jne 0x140048fc7
mov rdi, qword [rdi + 0x218]
test rdi, rdi
jne 0x14004901f
mov qword [rsp + 0xf8], r12
mov sil, byte [0x14032a2b0]
test sil, 0x19
jne 0x14004a213
xor ecx, ecx
movabs r12, 0xaaaaaaaaaaaaaaaa
mov rdi, r12
mov r14d, 1
lock xadd qword [rbp + 0x20], r14
mov r15, qword [rbp + 0x230]
mov rax, qword [r15 + 0x10]
cmp rax, qword [r15 + 0x18]
jne 0x14004b803
mov r15, qword [rbp + 0x238]
mov rax, qword [r15 + 0x10]
cmp rax, qword [r15 + 0x18]
jne 0x14004aedb
test sil, 0x19
jne 0x140049b31
mov rax, qword [rsp + 0x60]
cmp byte [rax], 0
jne 0x140049c20
lea rax, [rbp - 8]
mov qword [rsp + 0xa0], rax
lea rdi, [rsp + 0x6a0]
lea r14, [rsp + 0x160]
mov rax, qword [rbp + 0x148]
test rax, rax
je 0x140049017
tzcnt rsi, rax
cmp r13d, 1
je 0x140049a0e
lea rcx, [rbp + 0x120]
mov edx, esi
call fcn.1400b0d30
mov r12, rax
cmp dword [rax + 0x78], 1
je 0x140049c42
mov dword [rbp + 0x1a0], 0
test byte [0x14032a2c0], 0x19
jne 0x14004ab28
test r12, r12
je 0x140049864
cmp qword [r12 + 0x28], 0
je 0x140049224
mov r8d, 0x548
mov rcx, r14
mov dl, 0xaa
call fcn.14013f660
mov qword [rsp + 0x6a8], r14
mov qword [rsp + 0x6c8], r14
mov byte [rsp + 0x6a0], 1
mov qword [rsp + 0x6b0], r14
mov qword [rsp + 0x6b8], r14
mov qword [rsp + 0x6c0], rdi
cmp qword [r12 + 0x10], 0
je 0x140049224
mov rcx, qword [r12]
mov rdx, qword [rcx]
mov rax, qword [rcx + 8]
inc rax
cmp rax, rdx
mov r8d, 0
cmovne r8, rax
mov r15, qword [rcx + 0x18]
imul rsi, r8, 0xa8
mov rcx, qword [r15 + rsi]
test rcx, rcx
je 0x140049f44
mov rax, qword [rcx + 0x18]
lea rdx, [0x1401fedb0]
cmp rax, rdx
jne 0x140049f22
cmp qword [r15 + rsi + 0xa0], 0
jne 0x140049f08
mov rsi, qword [rsp + 0x6b0]
mov r15, rsi
cmp rsi, qword [rsp + 0x6b8]
jne 0x14004a429
test r15, r15
je 0x140049b75
cmp rsi, r15
jne 0x140049d2e
mov qword [rsp + 0x6b8], rsi
mov rax, qword [rsp + 0x6c8]
test rax, rax
je 0x140049ae8
cmp rax, rsi
jne 0x140049ae8
mov byte [rsi + 0x540], 0
cmp qword [r12 + 0x10], 0
je 0x140049b13
mov rcx, qword [r12]
mov rax, qword [rcx + 8]
inc rax
cmp rax, qword [rcx]
mov edx, 0
cmovne rdx, rax
imul rax, rdx, 0xa8
add rax, qword [rcx + 0x18]
cmp byte [rax + 0x80], 0
je 0x14004c047
mov r13, qword [r12 + 0x30]
cmp qword [r13 + 0x180], 0
jne 0x140049b91
cmp qword [r13 + 0x188], 0
jne 0x140049b91
cmp dword [rbp + 0x80], 0
jne 0x140049b1a
mov dword [rsp + 0x80], 0
cmp qword [rbp + 0x210], 0
jne 0x140049b91
mov dword [rsp + 0x58], 0
xorpd xmm0, xmm0
movupd xmmword [rsp + 0x142], xmm0
movupd xmmword [rsp + 0x132], xmm0
lea rax, [rsp + 0x160]
movups xmmword [rax + 0x50], xmm6
mov rcx, qword [r12]
mov rdx, qword [rcx + 8]
mov r9, qword [rcx + 0x18]
inc rdx
xor r8d, r8d
cmp rdx, qword [rcx]
cmove rdx, r8
imul rcx, rdx, 0xa8
lea rdx, [r9 + rcx]
add rdx, 0x28
mov rcx, qword [rdx - 0x28]
mov qword [rsp + 0x78], rcx
mov qword [rdx - 0x28], r8
movups xmm0, xmmword [rdx - 0x10]
movaps xmmword [rsp + 0x120], xmm0
movupd xmm0, xmmword [rdx - 0x20]
movapd xmmword [rsp + 0x110], xmm0
mov ecx, 0xa
mov rdi, rax
mov rsi, rdx
rep movsq qword [rdi], qword [rsi]
mov cl, byte [rdx + 0x54]
mov byte [rax + 0x54], cl
mov ecx, dword [rdx + 0x50]
mov dword [rax + 0x50], ecx
movzx ecx, word [rdx + 0x58]
mov word [rax + 0x58], cx
mov cl, byte [rdx + 0x5a]
mov byte [rax + 0x5a], cl
mov rax, qword [rdx + 0x60]
mov qword [rsp + 0x68], rax
mov qword [rdx + 0x60], r8
mov rax, qword [rdx + 0x68]
mov qword [rsp + 0x90], rax
mov rax, qword [rdx + 0x70]
mov qword [rsp + 0x88], rax
mov qword [rdx + 0x70], r8
mov r14, qword [rdx + 0x78]
mov rax, qword [r12]
mov rcx, qword [rax + 8]
mov rsi, qword [rax + 0x18]
inc rcx
cmp rcx, qword [rax]
cmove rcx, r8
mov qword [rax + 8], rcx
imul r15, rcx, 0xa8
mov rcx, qword [rsi + r15 + 0x98]
test rcx, rcx
jne 0x140049b4a
lea rdi, [rsi + r15]
mov rsi, qword [rsi + r15 + 0x88]
test rsi, rsi
jne 0x14004abf3
mov rcx, qword [rdi]
test rcx, rcx
jne 0x140049b5d
mov rax, qword [r12]
mov rcx, qword [rax + 0x10]
cmp rcx, qword [rax + 8]
jne 0x1400493e2
mov rcx, qword [rax + 0x20]
test rcx, rcx
jne 0x140049c7f
dec qword [r12 + 0x10]
jne 0x140049586
cmp dword [r12 + 0x78], 0
jne 0x14004957a
mov rdi, qword [r12 + 0x30]
cmp qword [r12 + 8], 0
je 0x1400494c4
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0x100], rax
mov rax, qword [0x14032a8e8]
lea rcx, [0x140038c30]
cmp rax, rcx
jne 0x140049cad
lea rsi, [rsp + 0x6d0]
mov qword [rsi], 0
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rax, qword [rsi]
movabs rcx, 0x8637bd05af7
cmp rax, rcx
jge 0x14004a14f
imul rax, rax, 0xf4240
cqo
idiv qword [0x14033afc8]
mov qword [rsp + 0x100], rax
cmp rax, qword [r12 + 0x20]
jl 0x1400494c4
mov rax, qword [r12 + 0x18]
inc rax
cmp rax, 5
mov edx, 4
cmovae rdx, rax
mov rax, qword [r12]
mov rcx, qword [r12 + 0x10]
mov qword [r12 + 0x18], rcx
test rax, rax
je 0x1400494c4
lea rcx, [rdx + 0x10]
xor r8d, r8d
add r8, qword [rax]
mov rax, qword [rax + 0x20]
test rax, rax
jne 0x1400494af
cmp rcx, r8
jb 0x14004a176
lea rsi, [rdi + 0x20]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x140049b83
mov rax, qword [r12]
mov rcx, qword [rdi + 0x28]
mov qword [r12], rcx
mov qword [rdi + 0x28], rax
mov rax, qword [r12 + 8]
mov rcx, qword [rdi + 0x30]
mov qword [r12 + 8], rcx
mov qword [rdi + 0x30], rax
mov rax, qword [r12 + 0x10]
mov rcx, qword [rdi + 0x38]
mov qword [r12 + 0x10], rcx
mov qword [rdi + 0x38], rax
mov rax, qword [r12 + 0x18]
mov rcx, qword [rdi + 0x40]
mov qword [r12 + 0x18], rcx
mov qword [rdi + 0x40], rax
mov rax, qword [r12 + 0x20]
mov rcx, qword [rdi + 0x48]
mov qword [r12 + 0x20], rcx
mov qword [rdi + 0x48], rax
cmp byte [rdi + 0x158], 0
jne 0x14004a8f5
mov rax, qword [rdi + 0xb8]
cmp qword [rax + 0x10], 0
sete byte [rdi + 0x50]
cmp qword [rdi + 0xa8], 0
mov al, byte [rdi + 0x128]
jne 0x14004956e
test al, al
je 0x140049b2a
mov al, byte [rdi + 0x130]
xor al, 1
mov byte [rdi + 0x51], al
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
cmp qword [r12 + 8], 0
jne 0x140049de5
mov rcx, qword [r12 + 0x28]
mov rdx, r12
call fcn.1400b1410
test byte [0x14032a2b0], 9
jne 0x14004ac65
mov r9, qword [rbp + 0x290]
mov rax, qword [rbp + 0x298]
mov rcx, rax
sub rcx, r9
sar rcx, 3
xor edx, edx
mov r8, rax
sub r8, r9
lea rcx, [rcx + r8*2 - 1]
cmovne rdx, rcx
mov rcx, qword [rbp + 0x2b0]
add rcx, qword [rbp + 0x2a8]
cmp rdx, rcx
jne 0x1400495f6
lea rcx, [rbp + 0x288]
call fcn.1400e19e0
mov r9, qword [rbp + 0x290]
mov rax, qword [rbp + 0x298]
cmp rax, r9
je 0x1400499ff
mov rcx, qword [rbp + 0x2a8]
add rcx, qword [rbp + 0x2b0]
movabs r8, 0xf0f0f0f0f0f0f0f1
mov rax, rcx
mul r8
mov rax, rdx
shr rax, 4
mov r9, qword [r9 + rax*8]
and rdx, 0xfffffffffffffff0
add rdx, rax
sub rcx, rdx
imul rdx, rcx, 0xe8
mov r10, r9
add r10, rdx
je 0x1400499ff
mov rax, qword [rsp + 0x78]
mov qword [r10], rax
movaps xmm0, xmmword [rsp + 0x110]
movaps xmm1, xmmword [rsp + 0x120]
movups xmmword [r10 + 0x18], xmm1
movups xmmword [r10 + 8], xmm0
lea rdi, [r10 + 0x28]
lea rax, [rsp + 0x160]
mov ecx, 0xa
mov rsi, rax
rep movsq qword [rdi], qword [rsi]
mov ecx, dword [rax + 0x50]
mov dword [r10 + 0x78], ecx
mov al, byte [rax + 0x54]
lea rcx, [rsp + 0x1b8]
mov byte [r10 + 0x7c], al
mov al, byte [rcx + 2]
mov byte [r10 + 0x82], al
movzx eax, word [rcx]
mov word [r10 + 0x80], ax
mov rax, qword [rsp + 0x68]
mov qword [r10 + 0x88], rax
mov rax, qword [rsp + 0x90]
mov qword [r10 + 0x90], rax
mov rax, qword [rsp + 0x88]
mov qword [r10 + 0x98], rax
mov qword [r10 + 0xa0], r14
mov qword [r9 + rdx + 0xa8], r13
mov eax, dword [r13]
mov dword [r9 + rdx + 0xb0], eax
mov dword [r9 + rdx + 0xb8], 0
mov eax, dword [rsp + 0x80]
mov byte [r9 + rdx + 0xbc], al
mov eax, dword [rsp + 0x58]
mov byte [r9 + rdx + 0xbd], al
movzx eax, word [rsp + 0x150]
mov word [r9 + rdx + 0xde], ax
movups xmm0, xmmword [rsp + 0x130]
movups xmm1, xmmword [rsp + 0x140]
movups xmmword [r9 + rdx + 0xce], xmm1
movups xmmword [r9 + rdx + 0xbe], xmm0
mov rax, qword [r13 + 0xb8]
mov al, byte [rax + 0x38]
mov byte [r9 + rdx + 0xe0], al
movzx eax, byte [r10 + 0x82]
mov dword [r9 + rdx + 0xe4], eax
mov rcx, qword [rbp + 0x2b0]
inc rcx
mov qword [rbp + 0x2b0], rcx
add rcx, qword [rbp + 0x2a8]
mov r9, qword [rbp + 0x290]
mov rax, rcx
mul r8
mov rax, rdx
shr rax, 4
and rdx, 0xfffffffffffffff0
add rdx, rax
sub rcx, rdx
mov rdx, qword [r9 + rax*8]
imul rcx, rcx, 0xe8
add rcx, rdx
xor edi, edi
cmp qword [rbp + 0x298], r9
cmovne rdi, rcx
cmp rdi, rdx
je 0x14004987a
lea rsi, [rdi - 0xe8]
mov rcx, qword [rsp + 0xa0]
mov rdx, rsi
mov r8, qword [rsp + 0x60]
call fcn.14004c190
cmp qword [rdi - 0x48], 0
jne 0x1400498b5
mov rax, qword [rdi - 0x50]
test rax, rax
jne 0x1400498d6
mov r14d, dword [rdi - 0x38]
movzx r15d, byte [rdi - 8]
mov rax, qword [rdi - 0x40]
mov rdi, qword [rax + 0x190]
test rdi, rdi
jne 0x140049962
shl r14, 0x20
or r14, r15
mov byte [rbx], 1
mov qword [rbx + 8], rsi
mov qword [rbx + 0x10], rdi
mov qword [rbx + 0x18], r14
test byte [rsp + 0xaf], 0x19
jne 0x140049889
mov rcx, qword [rsp + 0x6f8]
xor rcx, rsp
call fcn.14013d520
mov rax, rbx
movaps xmm6, xmmword [rsp + 0x700]
add rsp, 0x718
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov byte [rbx], 0
xorpd xmm0, xmm0
movupd xmmword [rbx + 8], xmm0
mov qword [rbx + 0x18], 0
jmp 0x14004982b
mov edi, 0xf68
add rdi, qword [r9 + rax*8 - 8]
jmp 0x1400497c4
mov rax, qword [rsp + 0xe8]
cmp byte [rax], 0
je 0x140049835
mov rcx, qword [rsp + 0xe8]
mov rdx, qword [rsp + 0xf8]
mov r8, qword [rsp + 0xf0]
call fcn.14018add0
jmp 0x140049835
mov rax, qword [rdi - 0x50]
test rax, rax
je 0x1400498c9
mov al, byte [rax + 4]
test al, al
je 0x1400497eb
mov rcx, rsi
call fcn.14010a4a0
jmp 0x1400497f8
mov al, byte [rax + 4]
test al, al
jne 0x1400497f8
cmp qword [rdi - 0x48], 0
je 0x1400497f8
mov rax, qword [rdi - 0x50]
test rax, rax
je 0x14004c172
mov al, byte [rax + 4]
test al, al
jne 0x14004c172
mov r14, qword [rdi - 0x48]
mov rax, qword [r14 + 0x18]
mov byte [rax + 4], 1
mov ecx, 8
call fcn.14013a6b4
mov dword [rax], 0
mov byte [rax + 4], 0
test rax, rax
je 0x14004993e
mov ecx, 1
lock xadd dword [rax], ecx
cmp ecx, 0x7fffffff
je 0x14004c175
mov rcx, qword [r14 + 0x18]
mov qword [r14 + 0x18], rax
test rcx, rcx
je 0x1400497f8
lock dec dword [rcx]
jne 0x1400497f8
call fcn.14013a6ac
jmp 0x1400497f8
mov eax, 1
lock xadd dword [rdi], eax
test eax, eax
jle 0x14004c157
cmp eax, 0x7fffffff
je 0x14004c15a
mov eax, 1
lock xadd dword [rdi], eax
test eax, eax
jle 0x14004c15d
cmp eax, 0x7fffffff
je 0x14004c160
lock dec dword [rdi]
jne 0x1400499ac
mov rax, qword [rdi + 0x10]
mov rcx, rdi
call qword [case.0x14017aab5.0]
mov byte [rbx], 1
mov qword [rbx + 8], rsi
mov qword [rbx + 0x10], rdi
mov eax, 1
lock xadd dword [rdi], eax
test eax, eax
jle 0x14004c163
cmp eax, 0x7fffffff
je 0x14004c166
shl r14, 0x20
or r14, r15
mov qword [rbx + 0x18], r14
lock dec dword [rdi]
jne 0x14004982b
mov rax, qword [rdi + 0x10]
mov rcx, rdi
call qword [case.0x14017aab5.0]
jmp 0x14004982b
int3
int3
int3
int3
int3
int3
int3
mov r15d, r13d
mov rcx, qword [rbp + 0x138]
sub rcx, qword [rbp + 0x130]
sar rcx, 2
cmp rcx, rsi
jne 0x140049a58
xor r12d, r12d
mov r13d, r15d
lea rdi, [rsp + 0x6a0]
jmp 0x14004910c
inc esi
movzx esi, sil
xor r12d, r12d
cmp rcx, rsi
mov r13d, r15d
lea rdi, [rsp + 0x6a0]
je 0x14004910c
bt rax, rsi
jae 0x140049a3b
mov rdx, qword [rbp + 0x180]
mov r8, qword [rbp + 0x188]
sub r8, rdx
sar r8, 5
cmp r8, rsi
jbe 0x140049a05
mov r8, rsi
shl r8, 5
mov r9, qword [rdx + r8 + 8]
cmp r9, qword [rdx + r8 + 0x10]
je 0x140049a3b
lea rcx, [rbp + 0x178]
lea rdi, [rsp + 0x160]
movaps xmmword [rdi + 0x20], xmm6
movaps xmmword [rdi + 0x10], xmm6
movaps xmmword [rdi], xmm6
mov rdx, rdi
mov r8, rsi
call fcn.1400b0f90
cmp byte [rdi], 0
je 0x140049a28
mov r12, qword [rsp + 0x168]
movabs rax, 0xfffffffc00000000
and rax, r12
cmp rax, qword [0x140336a08]
jne 0x140049a2b
mov rcx, r12
call fcn.14010edf0
jmp 0x140049a2b
mov rcx, rsi
call fcn.14013a6ac
jmp 0x140049224
mov rax, qword [8]
xor ecx, ecx
jmp 0x140049b08
mov rax, qword [rsi + 0x10]
mov rcx, rsi
call qword [case.0x14017aab5.0]
jmp 0x140049011
xor eax, eax
jmp 0x140049252
mov dword [rsp + 0x80], 0
jmp 0x1400492a6
xor eax, eax
jmp 0x14004956e
cmp byte [rcx], 0
je 0x14004909e
mov rdx, rdi
mov r8, r12
call fcn.14018add0
jmp 0x14004909e
lock dec dword [rcx]
jne 0x1400493a6
call fcn.14013a6ac
jmp 0x1400493a6
lock dec dword [rcx]
jne 0x1400493c7
mov rax, qword [rcx + 0x10]
call qword [case.0x14017aab5.0]
jmp 0x1400493c7
cmp r15, rsi
je 0x140049224
jmp 0x1400490c8
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
jmp 0x1400494d9
movsd xmm0, qword [rbp + 0x58]
mov al, 1
mov dword [rsp + 0x80], eax
xorpd xmm1, xmm1
ucomisd xmm0, xmm1
jbe 0x1400492a6
cmp byte [rbp + 0x100], 0
je 0x14004ab21
mov rax, qword [rbp + 0x108]
mov rcx, qword [rbp + 0x110]
mov qword [rbp + 0x108], rcx
mov rdx, rax
shl rdx, 0x17
xor rdx, rax
mov rax, rcx
shr rax, 0x1a
xor rax, rcx
xor rax, rdx
shr rdx, 0x11
xor rdx, rax
mov qword [rbp + 0x110], rdx
add rdx, rcx
shr rdx, 0xb
xorps xmm1, xmm1
cvtsi2sd xmm1, rdx
mulsd xmm1, qword [0x1402e9718]
ucomisd xmm0, xmm1
seta al
mov dword [rsp + 0x58], eax
mov r13, qword [r12 + 0x30]
jmp 0x1400492ae
mov rax, qword [rsp + 0x60]
mov rax, qword [rax + 8]
cmp rax, qword [rbp + 0x248]
jl 0x1400490ac
mov byte [rbp + 0x240], 1
jmp 0x1400490ac
mov rax, qword [rbp + 0x180]
mov rcx, qword [rbp + 0x188]
sub rcx, rax
sar rcx, 5
cmp rcx, rsi
jbe 0x140049a02
shl rsi, 5
mov rcx, qword [rax + rsi + 8]
cmp rcx, qword [rax + rsi + 0x10]
je 0x140049102
inc dword [rbp + 0x1a0]
jmp 0x14004910c
mov qword [rax + 0x20], 0
mov rsi, qword [r12]
mov qword [r12], rcx
test rsi, rsi
je 0x1400493e2
mov rcx, rsi
call fcn.140068e50
mov rcx, rsi
call fcn.14013a6ac
jmp 0x1400493e2
lea rsi, [rsp + 0x100]
mov rcx, rsi
call qword [case.0x14017aab5.0]
mov rax, qword [rsi]
jmp 0x140049479
call fcn.1400e5440
jmp 0x140049cee
mov rcx, qword [rdi + 0x18]
test rcx, rcx
je 0x140049ce0
lock dec dword [rcx]
jne 0x140049ce0
call fcn.14013a6ac
mov rcx, qword [rdi + 0x10]
test rcx, rcx
je 0x140049cee
lock dec dword [rcx]
je 0x140049cc6
mov rcx, rdi
call fcn.14013a6ac
jmp 0x140049d55
lock dec dword [rdi + 8]
jne 0x140049d55
mov rcx, qword [rdi]
mov rax, qword [rcx + 8]
lea rdx, [0x1401f9500]
cmp qword [rcx + 0x10], rdx
jne 0x140049d1e
lea rcx, [0x1402382c0]
cmp rax, rcx
je 0x140049ccd
mov rcx, rdi
mov edx, 1
call qword [case.0x14017aab5.0]
jmp 0x140049d55
mov dword [rsp + 0x80], r13d
mov r13, rsi
mov rcx, qword [r13 - 0x10]
test rcx, rcx
je 0x140049d4c
lock dec dword [rcx]
jne 0x140049d4c
call fcn.14013a6ac
mov rdi, qword [r13 - 0x20]
test rdi, rdi
jne 0x140049cf8
mov rcx, qword [r13 - 0xa8]
add r13, 0xffffffffffffff58
test rcx, rcx
jne 0x140049dbb
cmp r13, r15
jne 0x140049d39
mov rcx, qword [rsp + 0x6b0]
mov rax, qword [rsp + 0x6c8]
mov qword [rsp + 0x6b8], r15
test rax, rax
je 0x140049d98
cmp rax, rcx
jne 0x140049d98
mov byte [rcx + 0x540], 0
jmp 0x140049d9d
call fcn.14013a6ac
cmp rsi, r15
mov r13d, dword [rsp + 0x80]
lea rdi, [rsp + 0x6a0]
jne 0x1400490c8
jmp 0x140049224
lock dec dword [rcx]
jne 0x140049d68
mov rax, qword [rcx + 0x10]
call qword [case.0x14017aab5.0]
jmp 0x140049d68
lea rsi, [rsp + 0x100]
mov rcx, rsi
call qword [case.0x14017aab5.0]
mov rax, qword [rsi]
jmp 0x140049e70
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0x100], rax
mov rax, qword [0x14032a8e8]
lea rcx, [0x140038c30]
cmp rax, rcx
jne 0x140049dcc
lea rsi, [rsp + 0x6d0]
mov qword [rsi], 0
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rax, qword [rsi]
movabs rcx, 0x8637bd05af7
cmp rax, rcx
jl 0x140049e58
mov rcx, qword [0x14033afc8]
cqo
idiv rcx
imul r8, rax, 0xf4240
imul rax, rdx, 0xf4240
cqo
idiv rcx
add rax, r8
jmp 0x140049e68
imul rax, rax, 0xf4240
cqo
idiv qword [0x14033afc8]
mov qword [rsp + 0x100], rax
cmp rax, qword [r12 + 0x20]
jl 0x140049586
mov rax, qword [r12 + 0x18]
inc rax
cmp rax, 5
mov edx, 4
cmovae rdx, rax
mov rax, qword [r12]
mov rcx, qword [r12 + 0x10]
mov qword [r12 + 0x18], rcx
test rax, rax
je 0x140049586
lea rcx, [rdx + 0x10]
xor r8d, r8d
add r8, qword [rax]
mov rax, qword [rax + 0x20]
test rax, rax
jne 0x140049eae
cmp rcx, r8
jae 0x140049586
mov rcx, r12
call fcn.1401953a0
mov rax, qword [rsp + 0x100]
mov ecx, 0x4c4b40
lea rdx, [rcx + rax]
sar rdx, 0x3f
btc rdx, 0x3f
add rcx, rax
cmovo rcx, rdx
mov qword [r12 + 0x20], rcx
jmp 0x140049586
lea rcx, [rsp + 0x6b0]
call fcn.1400ed410
jmp 0x14004a027
mov rax, qword [r15 + rsi + 0x98]
test rax, rax
je 0x140049f32
mov al, byte [rax + 4]
test al, al
je 0x1400491d0
jmp 0x140049f32
xor edx, edx
call qword [case.0x14017aab5.0]
test al, al
je 0x1400491c1
mov rax, qword [r12]
mov r15, qword [rax + 0x18]
mov rdx, qword [rax]
mov rax, qword [rax + 8]
inc rax
xor ecx, ecx
cmp rax, rdx
cmovne rcx, rax
imul r8, rcx, 0xa8
lea rdx, [r15 + r8]
mov rax, qword [rsp + 0x6b8]
cmp rax, qword [rsp + 0x6c0]
jae 0x140049ef6
test rax, rax
je 0x140049a0b
mov rcx, qword [rdx]
mov qword [rax], rcx
xor r9d, r9d
mov qword [rdx], r9
movupd xmm0, xmmword [rdx + 8]
movupd xmm1, xmmword [rdx + 0x18]
movupd xmmword [rax + 0x18], xmm1
movupd xmmword [rax + 8], xmm0
lea rdi, [rax + 0x28]
lea rsi, [rdx + 0x28]
mov ecx, 0xa
rep movsq qword [rdi], qword [rsi]
mov cl, byte [rdx + 0x7c]
mov byte [rax + 0x7c], cl
mov ecx, dword [rdx + 0x78]
mov dword [rax + 0x78], ecx
mov cl, byte [r15 + r8 + 0x82]
mov byte [rax + 0x82], cl
movzx ecx, word [r15 + r8 + 0x80]
mov word [rax + 0x80], cx
mov rcx, qword [r15 + r8 + 0x88]
mov qword [rax + 0x88], rcx
mov qword [r15 + r8 + 0x88], r9
mov rcx, qword [r15 + r8 + 0x90]
mov qword [rax + 0x90], rcx
mov rcx, qword [r15 + r8 + 0x98]
mov qword [rax + 0x98], rcx
mov qword [r15 + r8 + 0x98], r9
mov rcx, qword [r15 + r8 + 0xa0]
mov qword [rax + 0xa0], rcx
add rax, 0xa8
mov qword [rsp + 0x6b8], rax
mov rax, qword [r12]
mov rcx, qword [rax + 8]
mov rsi, qword [rax + 0x18]
inc rcx
xor edx, edx
cmp rcx, qword [rax]
cmovne rdx, rcx
mov qword [rax + 8], rdx
imul r15, rdx, 0xa8
mov rcx, qword [rsi + r15 + 0x98]
test rcx, rcx
je 0x14004a061
lock dec dword [rcx]
jne 0x14004a061
call fcn.14013a6ac
lea rdi, [rsi + r15]
mov rsi, qword [rsi + r15 + 0x88]
test rsi, rsi
jne 0x14004a0a9
mov rcx, qword [rdi]
test rcx, rcx
jne 0x14004a0df
mov rax, qword [r12]
mov rcx, qword [rax + 0x10]
cmp rcx, qword [rax + 8]
jne 0x14004a091
mov rcx, qword [rax + 0x20]
test rcx, rcx
jne 0x14004a0f0
dec qword [r12 + 0x10]
lea rdi, [rsp + 0x6a0]
jne 0x14004917a
jmp 0x1400491d0
lock dec dword [rsi + 8]
jne 0x14004a072
mov rcx, qword [rsi]
mov rax, qword [rcx + 8]
lea rdx, [0x1401f9500]
cmp qword [rcx + 0x10], rdx
jne 0x14004a0cf
lea rcx, [0x1402382c0]
cmp rax, rcx
je 0x14004a11a
mov rcx, rsi
mov edx, 1
call qword [case.0x14017aab5.0]
jmp 0x14004a072
lock dec dword [rcx]
jne 0x14004a07a
mov rax, qword [rcx + 0x10]
call qword [case.0x14017aab5.0]
jmp 0x14004a07a
mov qword [rax + 0x20], 0
mov rsi, qword [r12]
mov qword [r12], rcx
test rsi, rsi
je 0x14004a091
mov rcx, rsi
call fcn.140068e50
mov rcx, rsi
call fcn.14013a6ac
jmp 0x14004a091
mov rcx, qword [rsi + 0x18]
test rcx, rcx
je 0x14004a12d
lock dec dword [rcx]
jne 0x14004a12d
call fcn.14013a6ac
mov rcx, qword [rsi + 0x10]
test rcx, rcx
je 0x14004a13b
lock dec dword [rcx]
je 0x14004a148
mov rcx, rsi
call fcn.14013a6ac
jmp 0x14004a072
call fcn.1400e5440
jmp 0x14004a13b
mov rcx, qword [0x14033afc8]
cqo
idiv rcx
imul r8, rax, 0xf4240
imul rax, rdx, 0xf4240
cqo
idiv rcx
add rax, r8
jmp 0x140049471
mov rcx, r12
call fcn.1401953a0
mov rax, qword [rsp + 0x100]
mov ecx, 0x4c4b40
lea rdx, [rcx + rax]
sar rdx, 0x3f
btc rdx, 0x3f
add rcx, rax
cmovo rcx, rdx
mov qword [r12 + 0x20], rcx
jmp 0x1400494c4
lea rsi, [rsp + 0x160]
mov rcx, rsi
call fcn.1400c65b0
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov qword [rsp + 0x38], rsi
mov dword [rsp + 0x30], eax
xorpd xmm0, xmm0
movupd xmmword [rsp + 0x20], xmm0
mov dword [rsp + 0x48], 0
mov qword [rsp + 0x40], 0
lea rdx, [0x14032a2b0]
lea r12, str.SequenceManagerImpl::SelectNextTask
mov cl, 0x58
mov qword [rsp + 0xe8], rdx
mov r8, r12
xor r9d, r9d
call fcn.140189ab0
mov qword [rsp + 0xf0], rax
jmp 0x140048fc1
lea rdi, [rsp + 0x160]
mov rcx, rdi
call fcn.1400c65b0
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov qword [rsp + 0x38], rdi
mov dword [rsp + 0x30], eax
xorpd xmm0, xmm0
movupd xmmword [rsp + 0x20], xmm0
mov dword [rsp + 0x48], 0
mov qword [rsp + 0x40], 0
lea r14, [0x14032a2b0]
lea rdi, str.SequenceManagerImpl::MoveReadyDelayedTasksToWorkQueues
mov cl, 0x58
mov rdx, r14
mov r8, rdi
xor r9d, r9d
call fcn.140189ab0
mov rcx, r14
mov r12, rax
jmp 0x14004905e
mov r15, qword [r12 + 0x30]
mov rax, qword [r15 + 0x10]
mov esi, dword [rax + 4]
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp esi, eax
jne 0x14004a6f4
lea rsi, [r15 + 0x20]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
jne 0x14004a2aa
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
mov rax, qword [r15 + 0x38]
mov qword [rsp + 0x68], rax
mov rax, qword [r15 + 0xb0]
mov rcx, qword [r15 + 0xb8]
mov rcx, qword [rcx + 0x10]
mov qword [rsp + 0x58], rcx
mov rax, qword [rax + 0x10]
mov qword [rsp + 0x80], rax
mov r13, qword [r15 + 0xd0]
mov rax, qword [r15 + 0xc8]
mov qword [rsp + 0x78], rax
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
test byte [0x14032a2b0], 0x19
je 0x14004a6f4
sub r13, qword [rsp + 0x78]
shr r13, 3
imul eax, r13d, 0x3cf3cf3d
mov rcx, qword [rsp + 0x58]
add ecx, dword [rsp + 0x68]
mov rsi, qword [rsp + 0x80]
add esi, eax
add esi, ecx
mov ecx, dword [r15]
call fcn.1400ebe70
mov r15, rax
lea rcx, [rsp + 0x130]
call fcn.1400c65b0
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
lea r13, [rsp + 0x6d0]
movaps xmmword [r13], xmm6
movaps xmmword [r13 + 0x10], xmm6
movabs rcx, 0xaaaaaaaaaaaaaaaa
mov qword [r13 + 0x20], rcx
mov word [r13], 0x301
lea rcx, [0x1402e9199]
mov qword [r13 + 8], rcx
movsxd rcx, esi
mov qword [r13 + 0x18], rcx
mov qword [rsp + 0x40], r13
lea rcx, [rsp + 0x130]
mov qword [rsp + 0x38], rcx
mov dword [rsp + 0x30], eax
xorpd xmm0, xmm0
movupd xmmword [rsp + 0x20], xmm0
mov dword [rsp + 0x48], 0
lea rdx, [0x14032a2b0]
mov cl, 0x43
mov r8, r15
xor r9d, r9d
call fcn.140189ab0
mov rcx, r13
call fcn.1400a9984
jmp 0x14004a6f4
lea rsi, [rsp + 0x130]
mov rcx, rsi
call qword [case.0x14017aab5.0]
mov rax, qword [rsi]
jmp 0x14004a4e4
lea rsi, [rsp + 0x130]
mov rcx, rsi
call qword [case.0x14017aab5.0]
mov rax, qword [rsi]
jmp 0x14004a687
mov rcx, r12
call fcn.1401953a0
mov rax, qword [rsp + 0x130]
mov ecx, 0x4c4b40
lea rdx, [rcx + rax]
sar rdx, 0x3f
btc rdx, 0x3f
add rcx, rax
cmovo rcx, rdx
mov qword [r12 + 0x20], rcx
jmp 0x14004a52f
mov edi, r13d
cmp qword [r12 + 0x10], 0
jne 0x14004a6d2
movabs r15, 0x8637bd05af7
cmp dword [r12 + 0x78], 0
jne 0x14004a5ef
mov r13, qword [r12 + 0x30]
cmp qword [r12 + 8], 0
je 0x14004a52f
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0x130], rax
mov rax, qword [0x14032a8e8]
lea rcx, [0x140038c30]
cmp rax, rcx
jne 0x14004a3c4
lea rsi, [rsp + 0x6d0]
mov qword [rsi], 0
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rax, qword [rsi]
cmp rax, r15
jl 0x14004a4cc
mov rcx, qword [0x14033afc8]
cqo
idiv rcx
imul r8, rax, 0xf4240
imul rax, rdx, 0xf4240
cqo
idiv rcx
add rax, r8
jmp 0x14004a4dc
imul rax, rax, 0xf4240
cqo
idiv qword [0x14033afc8]
mov qword [rsp + 0x130], rax
cmp rax, qword [r12 + 0x20]
jl 0x14004a52f
mov rax, qword [r12 + 0x18]
inc rax
cmp rax, 5
mov edx, 4
cmovae rdx, rax
mov rax, qword [r12]
mov rcx, qword [r12 + 0x10]
mov qword [r12 + 0x18], rcx
test rax, rax
je 0x14004a52f
lea rcx, [rdx + 0x10]
xor r8d, r8d
add r8, qword [rax]
mov rax, qword [rax + 0x20]
test rax, rax
jne 0x14004a51a
cmp rcx, r8
jb 0x14004a3f6
lea rsi, [r13 + 0x20]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
jne 0x14004a549
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
mov rax, qword [r12]
mov rcx, qword [r13 + 0x28]
mov qword [r12], rcx
mov qword [r13 + 0x28], rax
mov rax, qword [r12 + 8]
mov rcx, qword [r13 + 0x30]
mov qword [r12 + 8], rcx
mov qword [r13 + 0x30], rax
mov rax, qword [r12 + 0x10]
mov rcx, qword [r13 + 0x38]
mov qword [r12 + 0x10], rcx
mov qword [r13 + 0x38], rax
mov rax, qword [r12 + 0x18]
mov rcx, qword [r13 + 0x40]
mov qword [r12 + 0x18], rcx
mov qword [r13 + 0x40], rax
mov rax, qword [r12 + 0x20]
mov rcx, qword [r13 + 0x48]
mov qword [r12 + 0x20], rcx
mov qword [r13 + 0x48], rax
cmp byte [r13 + 0x158], 0
jne 0x14004a714
mov rax, qword [r13 + 0xb8]
cmp qword [rax + 0x10], 0
sete byte [r13 + 0x50]
cmp qword [r13 + 0xa8], 0
mov al, byte [r13 + 0x128]
jne 0x14004a5e2
test al, al
je 0x14004a668
mov al, byte [r13 + 0x130]
xor al, 1
mov byte [r13 + 0x51], al
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
cmp qword [r12 + 8], 0
je 0x14004a6d2
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0x130], rax
mov rax, qword [0x14032a8e8]
lea rcx, [0x140038c30]
cmp rax, rcx
jne 0x14004a3dd
lea rsi, [rsp + 0x6d0]
mov qword [rsi], 0
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rax, qword [rsi]
cmp rax, r15
jl 0x14004a66f
mov rcx, qword [0x14033afc8]
cqo
idiv rcx
imul r8, rax, 0xf4240
imul rax, rdx, 0xf4240
cqo
idiv rcx
add rax, r8
jmp 0x14004a67f
xor eax, eax
jmp 0x14004a5e2
imul rax, rax, 0xf4240
cqo
idiv qword [0x14033afc8]
mov qword [rsp + 0x130], rax
cmp rax, qword [r12 + 0x20]
jl 0x14004a6d2
mov rax, qword [r12 + 0x18]
inc rax
cmp rax, 5
mov edx, 4
cmovae rdx, rax
mov rax, qword [r12]
mov rcx, qword [r12 + 0x10]
mov qword [r12 + 0x18], rcx
test rax, rax
je 0x14004a6d2
lea rcx, [rdx + 0x10]
xor r8d, r8d
add r8, qword [rax]
mov rax, qword [rax + 0x20]
test rax, rax
jne 0x14004a6bd
cmp rcx, r8
jb 0x14004a8c2
cmp qword [r12 + 0x40], 0xffffffffffffffff
je 0x14004a6e7
mov rcx, qword [r12 + 0x28]
mov rdx, r12
call fcn.1400db650
test byte [0x14032a2b0], 9
jne 0x14004a276
mov r15, qword [rsp + 0x6b0]
mov rsi, qword [rsp + 0x6b8]
mov r13d, edi
lea rdi, [rsp + 0x6a0]
jmp 0x1400491e9
lea rcx, [rsp + 0x130]
movaps xmmword [rcx], xmm6
mov rdx, qword [r12]
call fcn.140238430
lea rax, [rsp + 0x130]
mov rcx, qword [rax]
test rcx, rcx
je 0x14004a773
cmp byte [r13 + 0x158], 0
je 0x14004ab23
imul rax, qword [rsp + 0x138], 0xa8
mov rcx, qword [rcx + 0x18]
mov rdx, qword [rcx + rax + 0x28]
cmp rdx, qword [r13 + 0x160]
jge 0x14004a77a
lea rcx, [rsp + 0x130]
call fcn.1400a5dc0
jmp 0x14004a728
xor ecx, ecx
jmp 0x14004a846
lea r8, [rcx + rax]
mov byte [r13 + 0x158], 0
mov edx, dword [r8 + 0x78]
mov r9, qword [r8 + 0x30]
test r9, r9
jne 0x14004a86a
xor r8d, r8d
mov rax, qword [rcx + rax + 0x90]
cmp byte [r13 + 0x130], 0
lea rcx, [r13 + 0x138]
mov qword [rsp + 0x80], rcx
mov qword [r13 + 0x138], rax
mov qword [r13 + 0x140], r8
mov dword [r13 + 0x148], edx
jne 0x14004a7d8
mov byte [r13 + 0x130], 1
mov rcx, qword [r13 + 0xb8]
mov r8, qword [rsp + 0x80]
mov eax, dword [r8 + 0x10]
lea rdx, [rsp + 0x6d0]
mov dword [rdx + 0x10], eax
movupd xmm0, xmmword [r8]
movapd xmmword [rdx], xmm0
call fcn.14017a780
cmp byte [r13 + 0x130], 0
je 0x14004ab21
mov rcx, qword [r13 + 0xb0]
mov r8, qword [rsp + 0x80]
mov eax, dword [r8 + 0x10]
lea rdx, [rsp + 0x6d0]
mov dword [rdx + 0x10], eax
movupd xmm0, xmmword [r8]
movapd xmmword [rdx], xmm0
call fcn.14017a780
mov rcx, qword [rsp + 0x130]
movabs rax, 0xfffffffc00000000
and rax, rcx
cmp rax, qword [0x140336a08]
jne 0x14004a5af
call fcn.14010edf0
jmp 0x14004a5af
cmp dword [r8 + 0x40], 0
je 0x14004a879
mov r8, r9
jmp 0x14004a79a
movabs r10, 0x8000000000000001
mov r8, qword [r8 + 0x38]
lea r11, [r8 + r10]
cmp r11, 2
jae 0x14004a8ac
add r10, r9
cmp r10, 1
ja 0x14004a79a
cmp r9, r8
je 0x14004a79a
jmp 0x140049a08
lea r10, [r9 + r8]
sar r10, 0x3f
btc r10, 0x3f
add r9, r8
cmovo r9, r10
jmp 0x14004a871
mov rcx, r12
call fcn.1401953a0
mov rax, qword [rsp + 0x130]
mov ecx, 0x4c4b40
lea rdx, [rcx + rax]
sar rdx, 0x3f
btc rdx, 0x3f
add rcx, rax
cmovo rcx, rdx
mov qword [r12 + 0x20], rcx
jmp 0x14004a6d2
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0x108], rax
mov rax, qword [r12]
mov qword [rsp + 0x100], 0
test rax, rax
je 0x14004a92c
mov r15, rax
mov rcx, rax
mov rax, qword [r15 + 8]
cmp qword [r15 + 0x10], rax
jne 0x14004a96b
xorpd xmm0, xmm0
movapd xmmword [rsp + 0x100], xmm0
xor eax, eax
mov qword [rsp + 0x70], rax
movabs rax, 0xfffffffc00000000
and rax, qword [rsp + 0x70]
cmp rax, qword [0x140336a08]
jne 0x14004953e
mov rcx, qword [rsp + 0x70]
call fcn.14010edf0
jmp 0x14004953e
mov rcx, r15
movabs rdx, 0xfffffffc00000000
and rcx, rdx
cmp rcx, qword [0x140336a08]
jne 0x14004a9a0
mov rcx, r15
mov qword [rsp + 0x98], r15
call fcn.14010ecc8
mov rax, qword [rsp + 0x98]
mov rax, qword [rax + 8]
lea r8, [rsp + 0x100]
mov rcx, r15
mov qword [r8], r15
inc rax
xor edx, edx
mov qword [rsp + 0x70], rdx
cmp rax, qword [r15]
mov ecx, 0
cmovne rcx, rax
mov qword [r8 + 8], rcx
cmp byte [rdi + 0x158], 0
je 0x14004ab23
imul rax, qword [rsp + 0x108], 0xa8
mov rcx, qword [r15 + 0x18]
mov rdx, qword [rcx + rax + 0x28]
cmp rdx, qword [rdi + 0x160]
jge 0x14004aa15
lea rcx, [rsp + 0x100]
call fcn.1400a5dc0
mov rax, qword [rsp + 0x100]
mov r15, rax
test rax, rax
jne 0x14004a9c8
jmp 0x14004a940
lea r8, [rcx + rax]
mov byte [rdi + 0x158], 0
mov edx, dword [r8 + 0x78]
mov r9, qword [r8 + 0x30]
test r9, r9
jne 0x14004aac9
xor r8d, r8d
mov rax, qword [rcx + rax + 0x90]
cmp byte [rdi + 0x130], 0
lea r15, [rdi + 0x138]
mov qword [rdi + 0x138], rax
mov qword [rdi + 0x140], r8
mov dword [rdi + 0x148], edx
jne 0x14004aa67
mov byte [rdi + 0x130], 1
mov rcx, qword [rdi + 0xb8]
mov eax, dword [r15 + 0x10]
lea rdx, [rsp + 0x6d0]
mov dword [rdx + 0x10], eax
movupd xmm0, xmmword [r15]
movapd xmmword [rdx], xmm0
call fcn.14017a780
cmp byte [rdi + 0x130], 0
je 0x14004ab21
mov rcx, qword [rdi + 0xb0]
mov eax, dword [r15 + 0x10]
lea rdx, [rsp + 0x6d0]
mov dword [rdx + 0x10], eax
movupd xmm0, xmmword [r15]
movapd xmmword [rdx], xmm0
call fcn.14017a780
mov rax, qword [rsp + 0x100]
jmp 0x14004a93b
cmp dword [r8 + 0x40], 0
je 0x14004aad8
mov r8, r9
jmp 0x14004aa34
movabs r10, 0x8000000000000001
mov r8, qword [r8 + 0x38]
lea r11, [r8 + r10]
cmp r11, 2
jae 0x14004ab0b
add r10, r9
cmp r10, 1
ja 0x14004aa34
cmp r9, r8
je 0x14004aa34
jmp 0x14004c169
lea r10, [r9 + r8]
sar r10, 0x3f
btc r10, 0x3f
add r9, r8
cmovo r9, r10
jmp 0x14004aad0
ud2
call fcn.1401a3145
lea rdx, [rsp + 0x130]
mov r15, qword [rsp + 0xa0]
mov rcx, r15
mov r8, r12
xor r9d, r9d
call fcn.14021b0d0
lea rsi, [rsp + 0x6d0]
mov rcx, rsi
call fcn.1400c65b0
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
movaps xmmword [rsp + 0x160], xmm6
movaps xmmword [rsp + 0x170], xmm6
movabs rcx, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0x180], rcx
mov word [rsp + 0x160], 0x801
lea rcx, [0x1402e9133]
mov qword [rsp + 0x168], rcx
lea rcx, [rsp + 0x130]
mov rcx, qword [rcx]
mov qword [rsp + 0x178], rcx
mov qword [rsp + 0x40], r14
mov qword [rsp + 0x38], rsi
mov dword [rsp + 0x30], eax
mov qword [rsp + 0x20], r15
mov dword [rsp + 0x48], 0x800
mov qword [rsp + 0x28], 0
lea rdx, [0x14032a2c0]
lea r8, [0x1402fc290]
mov cl, 0x4f
xor r9d, r9d
call fcn.140189ab0
mov rcx, r14
call fcn.1400a9984
jmp 0x140049119
lock dec dword [rsi + 8]
jne 0x1400493bb
mov rcx, qword [rsi]
mov rax, qword [rcx + 8]
lea rdx, [0x1401f9500]
cmp qword [rcx + 0x10], rdx
jne 0x14004ac1d
lea rcx, [0x1402382c0]
cmp rax, rcx
je 0x14004ac30
mov rcx, rsi
mov edx, 1
call qword [case.0x14017aab5.0]
jmp 0x1400493bb
mov rcx, qword [rsi + 0x18]
test rcx, rcx
je 0x14004ac43
lock dec dword [rcx]
jne 0x14004ac43
call fcn.14013a6ac
mov rcx, qword [rsi + 0x10]
test rcx, rcx
je 0x14004ac51
lock dec dword [rcx]
je 0x14004ac5e
mov rcx, rsi
call fcn.14013a6ac
jmp 0x1400493bb
call fcn.1400e5440
jmp 0x14004ac51
mov rdi, qword [r12 + 0x30]
mov rax, qword [rdi + 0x10]
mov esi, dword [rax + 4]
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp esi, eax
jne 0x1400495a0
lea rsi, [rdi + 0x20]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
jne 0x14004ac99
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
mov rax, qword [rdi + 0x38]
mov qword [rsp + 0xb0], rax
mov rax, qword [rdi + 0xb0]
mov rcx, qword [rdi + 0xb8]
mov rcx, qword [rcx + 0x10]
mov qword [rsp + 0x98], rcx
mov rax, qword [rax + 0x10]
mov qword [rsp + 0x70], rax
mov r15, qword [rdi + 0xd0]
mov r12, qword [rdi + 0xc8]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
test byte [0x14032a2b0], 0x19
je 0x1400495a0
sub r15, r12
shr r15, 3
imul eax, r15d, 0x3cf3cf3d
mov rcx, qword [rsp + 0x98]
add ecx, dword [rsp + 0xb0]
mov r15, qword [rsp + 0x70]
add r15d, eax
add r15d, ecx
mov ecx, dword [rdi]
call fcn.1400ebe70
mov rsi, rax
lea r12, [rsp + 0x100]
mov rcx, r12
call fcn.1400c65b0
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
lea rdi, [rsp + 0x6d0]
movaps xmmword [rdi], xmm6
movaps xmmword [rdi + 0x10], xmm6
movabs rcx, 0xaaaaaaaaaaaaaaaa
mov qword [rdi + 0x20], rcx
mov word [rdi], 0x301
lea rcx, [0x1402e9199]
mov qword [rdi + 8], rcx
movsxd rcx, r15d
mov qword [rdi + 0x18], rcx
mov qword [rsp + 0x40], rdi
mov qword [rsp + 0x38], r12
mov dword [rsp + 0x30], eax
xorpd xmm0, xmm0
movupd xmmword [rsp + 0x20], xmm0
mov dword [rsp + 0x48], 0
lea rdx, [0x14032a2b0]
mov cl, 0x43
mov r8, rsi
xor r9d, r9d
call fcn.140189ab0
mov rcx, rdi
call fcn.1400a9984
jmp 0x1400495a0
cmp r8, rdx
je 0x14004c181
mov rcx, qword [r8 + 0x18]
jmp 0x14004af85
lea rcx, [rsp + 0x6d0]
call qword [case.0x14017aab5.0]
lea rax, [rsp + 0x6d0]
mov rax, qword [rax]
jmp 0x14004b131
cmp byte [r14 + 0x128], 0
je 0x14004b234
mov rcx, r14
call fcn.1400987b0
lea r9, [rsp + 0x6d0]
mov rcx, qword [rsp + 0x58]
mov byte [r9], cl
mov ecx, 0xaaaaaaaa
mov dword [r9 + 1], ecx
mov dword [r9 + 4], ecx
mov rcx, qword [rsp + 0x78]
mov qword [r9 + 8], rcx
mov rcx, qword [rsp + 0x90]
mov qword [r9 + 0x10], rcx
mov ecx, dword [rsp + 0x68]
mov dword [r9 + 0x18], ecx
mov ecx, dword [rsp + 0x88]
mov dword [r9 + 0x1c], ecx
movabs rcx, 0xaaaaaaaaaaaaaaaa
mov qword [r9 + 0x20], rcx
mov rcx, qword [r13]
mov r10, qword [rcx + 0x10]
mov byte [rsp + 0x20], al
lea rdx, [rsp + 0x160]
mov rcx, r13
mov r13, rdx
mov r8, qword [rsp + 0x60]
mov rax, r10
call qword [case.0x14017aab5.0]
mov rcx, r13
mov al, byte [r13]
mov qword [rsp + 0x58], rax
mov eax, dword [r13 + 1]
mov dword [rsp + 0x110], eax
mov eax, dword [r13 + 4]
mov dword [rsp + 0x113], eax
mov rax, qword [r13 + 8]
mov qword [rsp + 0x78], rax
mov rax, qword [r13 + 0x10]
mov qword [rsp + 0x90], rax
mov eax, dword [r13 + 0x18]
mov dword [rsp + 0x68], eax
mov eax, dword [r13 + 0x1c]
mov dword [rsp + 0x88], eax
mov rax, qword [r13 + 0x20]
jmp 0x14004b23e
lea rcx, [rsp + 0x6d0]
call qword [case.0x14017aab5.0]
lea rax, [rsp + 0x6d0]
mov rax, qword [rax]
jmp 0x14004b051
mov qword [rsp + 0xa0], rcx
mov dword [rsp + 0x80], r13d
cmp dword [rax + 0x14], 1
jne 0x14004af40
movabs rcx, 0x8000000000000001
mov r13, qword [rax]
mov rax, qword [rax + 8]
lea rdx, [rax + rcx]
cmp rdx, 2
jae 0x14004af22
cmp r13, rax
je 0x14004c16f
sar rax, 0x3f
lea r13, [rax + rcx]
dec r13
jmp 0x14004af43
xor ecx, ecx
cmp r13, rax
setns cl
movabs rdx, 0x7fffffffffffffff
add rdx, rcx
sub r13, rax
cmovo r13, rdx
jmp 0x14004af43
mov r13, qword [rax]
mov rax, qword [rsp + 0x60]
cmp byte [rax], 0
je 0x14004affb
mov rax, qword [rsp + 0x60]
mov rax, qword [rax + 8]
cmp r13, rax
mov r13d, dword [rsp + 0x80]
mov rcx, qword [rsp + 0xa0]
jg 0x140049094
mov rax, qword [r15 + 0x10]
cmp rax, qword [r15 + 0x18]
je 0x14004c181
mov rcx, qword [rax + 0x18]
mov rdx, qword [rsp + 0x60]
mov r8, r14
call fcn.1400a14e0
mov rax, qword [r15 + 0x10]
cmp rax, qword [r15 + 0x18]
mov r13d, dword [rsp + 0x80]
mov rcx, qword [rsp + 0xa0]
je 0x140049094
cmp dword [rax + 0x14], 1
jne 0x14004b16b
mov r13, qword [rax]
mov rax, qword [rax + 8]
movabs rcx, 0x8000000000000001
add rcx, rax
cmp rcx, 2
jae 0x14004b094
cmp r13, rax
je 0x14004c17b
sar rax, 0x3f
movabs rcx, 0x8000000000000001
lea r13, [rax + rcx]
dec r13
jmp 0x14004b16e
mov rax, qword [fcn.1400c65b0]
lea rcx, [0x140038c30]
cmp rax, rcx
jne 0x14004aebd
lea rcx, [rsp + 0x160]
mov qword [rcx], 0
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
lea rax, [rsp + 0x160]
mov rax, qword [rax]
movabs rcx, 0x8637bd05af7
cmp rax, rcx
jge 0x14004b070
imul rax, rax, 0xf4240
cqo
idiv qword [0x14033afc8]
mov rcx, qword [rsp + 0x60]
cmp byte [rcx], 0
mov qword [rcx + 8], rax
jne 0x14004af5a
mov rcx, qword [rsp + 0x60]
mov byte [rcx], 1
jmp 0x14004af5a
mov rcx, qword [0x14033afc8]
cqo
idiv rcx
imul r8, rax, 0xf4240
imul rax, rdx, 0xf4240
cqo
idiv rcx
add rax, r8
jmp 0x14004b051
xor ecx, ecx
cmp r13, rax
setns cl
movabs rdx, 0x7fffffffffffffff
add rcx, rdx
sub r13, rax
cmovo r13, rcx
jmp 0x14004b16e
mov rax, qword [fcn.1400c65b0]
lea rcx, [0x140038c30]
cmp rax, rcx
jne 0x14004adbb
mov qword [rsp + 0x160], 0
lea rcx, [rsp + 0x160]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rax, qword [rsp + 0x160]
movabs rcx, 0x8637bd05af7
cmp rax, rcx
jl 0x14004b121
mov rcx, qword [0x14033afc8]
cqo
idiv rcx
imul r8, rax, 0xf4240
imul rax, rdx, 0xf4240
cqo
idiv rcx
add rax, r8
jmp 0x14004b131
imul rax, rax, 0xf4240
cqo
idiv qword [0x14033afc8]
mov rcx, qword [rsp + 0x60]
cmp byte [rcx], 0
mov qword [rcx + 8], rax
jne 0x14004b185
mov rcx, qword [rsp + 0x60]
mov byte [rcx], 1
jmp 0x14004b185
mov rcx, qword [r14 + 8]
mov rdx, qword [r14 + 0xb8]
mov cl, byte [rcx + 0x51]
xor r8d, r8d
cmp cl, byte [rdx + 0x38]
setae r8b
mov dword [rsp + 0x68], r8d
jmp 0x14004b1fe
mov r13, qword [rax]
mov rax, qword [rsp + 0x60]
cmp byte [rax], 0
je 0x14004b0b5
mov rax, qword [rsp + 0x60]
mov rax, qword [rax + 8]
mov r8, qword [r15 + 0x10]
mov rdx, qword [r15 + 0x18]
cmp r13, rax
jle 0x14004ada9
cmp r8, rdx
mov r13d, dword [rsp + 0x80]
mov rcx, qword [rsp + 0xa0]
je 0x140049094
mov r14, qword [r8 + 0x18]
mov eax, 0xaaaaaaaa
mov dword [rsp + 0x113], eax
mov dword [rsp + 0x110], eax
mov rax, qword [r14 + 0xc8]
cmp rax, qword [r14 + 0xd0]
je 0x14004b2d7
cmp byte [r14 + 0x128], 0
je 0x14004b2d7
mov dword [rsp + 0x68], 0
cmp dword [r14 + 0xe0], 0
jne 0x14004b149
mov rcx, qword [rax + 0x30]
mov qword [rsp + 0x78], rcx
mov rcx, qword [rax + 0x38]
mov qword [rsp + 0x90], rcx
mov eax, dword [rax + 0x40]
mov dword [rsp + 0x88], eax
mov al, 1
mov qword [rsp + 0x58], rax
mov r13, qword [r14 + 0xa8]
test r13, r13
jne 0x14004add9
movabs rax, 0xaaaaaaaaaaaaaaaa
mov cl, byte [r14 + 0x198]
cmp byte [rsp + 0x58], 0
je 0x14004b32a
test cl, cl
je 0x14004b32a
mov rcx, qword [rsp + 0x78]
cmp qword [r14 + 0x1a0], rcx
jne 0x14004b33f
mov rcx, qword [rsp + 0x90]
cmp qword [r14 + 0x1a8], rcx
jne 0x14004b33f
mov ecx, dword [rsp + 0x68]
cmp dword [r14 + 0x1b0], ecx
jne 0x14004b33f
mov ecx, dword [rsp + 0x88]
cmp dword [r14 + 0x1b4], ecx
jne 0x14004b33f
mov rax, qword [r15 + 0x10]
cmp rax, qword [r15 + 0x18]
mov r13d, dword [rsp + 0x80]
mov rcx, qword [rsp + 0xa0]
je 0x140049094
mov rdx, r14
mov r14, qword [rax + 0x18]
cmp rdx, r14
je 0x140049094
jmp 0x14004b68b
xor eax, eax
mov qword [rsp + 0x58], rax
xor eax, eax
mov qword [rsp + 0x78], rax
xor eax, eax
mov qword [rsp + 0x90], rax
mov dword [rsp + 0x68], 0
mov dword [rsp + 0x88], 0
jmp 0x14004b224
xor eax, eax
mov qword [rsp + 0xc8], rax
xor eax, eax
mov qword [rsp + 0xd0], rax
xor eax, eax
mov qword [rsp + 0xd8], rax
jmp 0x14004b3eb
cmp byte [rsp + 0x58], 0
setne dl
test cl, cl
setne cl
cmp dl, cl
je 0x14004b2a4
mov rcx, qword [rsp + 0x58]
mov byte [r14 + 0x198], cl
mov ecx, dword [rsp + 0x110]
mov edx, dword [rsp + 0x113]
mov dword [r14 + 0x199], ecx
mov dword [r14 + 0x19c], edx
mov rcx, qword [rsp + 0x78]
mov qword [r14 + 0x1a0], rcx
mov rcx, qword [rsp + 0x90]
mov qword [r14 + 0x1a8], rcx
mov ecx, dword [rsp + 0x68]
mov dword [r14 + 0x1b0], ecx
mov ecx, dword [rsp + 0x88]
mov dword [r14 + 0x1b4], ecx
mov qword [r14 + 0x1b8], rax
mov rax, qword [r14 + 0xa0]
mov r13, qword [rax + 0x10]
mov qword [rsp + 0x70], rax
mov rax, qword [rax + 0x18]
mov qword [rsp + 0xb0], rax
cmp r13, rax
je 0x14004b307
mov rax, qword [r13]
mov qword [rsp + 0xd8], rax
mov rax, qword [r13 + 8]
mov qword [rsp + 0xd0], rax
mov eax, dword [r13 + 0x14]
mov qword [rsp + 0xc8], rax
mov rax, qword [r14 + 0x120]
mov qword [rsp + 0x98], rax
cmp rax, 0xffffffffffffffff
je 0x14004b5f9
mov rax, qword [rsp + 0xb0]
sub rax, r13
sar rax, 5
cmp rax, qword [rsp + 0x98]
jbe 0x14004b6bd
mov rax, qword [rsp + 0x98]
shl rax, 5
mov eax, dword [r13 + rax + 0x10]
mov dword [rsp + 0xc0], eax
mov rax, qword [rsp + 0x70]
add rax, 8
mov qword [rsp + 0xb8], rax
cmp byte [rsp + 0x58], 0
je 0x14004b557
movabs rax, 0xfffffffc00000000
and rax, r14
mov r8, qword [rsp + 0x98]
cmp rax, qword [0x140336a08]
jne 0x14004b482
mov rcx, r14
call fcn.14010ecc8
mov r8, qword [r14 + 0x120]
lea r9, [rsp + 0x160]
mov rax, qword [rsp + 0x78]
mov qword [r9], rax
mov rax, qword [rsp + 0x90]
mov qword [r9 + 8], rax
mov eax, dword [rsp + 0x68]
mov dword [r9 + 0x10], eax
mov eax, dword [rsp + 0x88]
mov dword [r9 + 0x14], eax
mov qword [r9 + 0x18], r14
lea rdx, [rsp + 0x130]
mov rcx, qword [rsp + 0xb8]
call fcn.1400d0d80
mov rcx, qword [rsp + 0x70]
mov rax, qword [rcx + 0x10]
mov rcx, qword [rcx + 0x18]
cmp rax, rcx
je 0x14004b54d
mov r8, qword [rax]
mov r9, qword [rax + 8]
mov edx, dword [rax + 0x14]
cmp qword [rsp + 0x98], 0xffffffffffffffff
je 0x14004b504
cmp dword [rsp + 0xc0], 1
jne 0x14004b504
mov r10, qword [rsp + 0x70]
dec dword [r10 + 0x28]
cmp byte [rsp + 0x58], 0
je 0x14004b51b
cmp dword [rsp + 0x68], 1
jne 0x14004b51b
mov r10, qword [rsp + 0x70]
inc dword [r10 + 0x28]
cmp r13, qword [rsp + 0xb0]
je 0x14004b571
cmp rax, rcx
je 0x14004b571
cmp r8, qword [rsp + 0xd8]
jne 0x14004b58c
cmp r9, qword [rsp + 0xd0]
jne 0x14004b58c
cmp edx, dword [rsp + 0xc8]
je 0x14004b2a4
jmp 0x14004b58c
xor r8d, r8d
xor r9d, r9d
xor edx, edx
jmp 0x14004b4e6
mov rcx, qword [rsp + 0xb8]
mov rdx, qword [rsp + 0x98]
call fcn.140139940
jmp 0x14004b4ca
cmp rax, rcx
setne dl
cmp r13, qword [rsp + 0xb0]
setne r8b
cmp r8b, dl
je 0x14004b2a4
cmp rax, rcx
je 0x14004b5dc
movupd xmm0, xmmword [rax]
mov eax, dword [rax + 0x14]
movupd xmmword [rsp + 0x168], xmm0
mov dword [rsp + 0x178], 0
mov dword [rsp + 0x17c], eax
mov al, 1
lea r8, [rsp + 0x160]
mov byte [r8], al
mov rcx, qword [rsp + 0x70]
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
mov rdx, qword [rsp + 0x60]
call qword [case.0x14017aab5.0]
jmp 0x14004b2a4
xorpd xmm0, xmm0
movupd xmmword [rsp + 0x168], xmm0
mov qword [rsp + 0x178], 0
xor eax, eax
jmp 0x14004b5b5
mov dword [rsp + 0xc0], 0xaaaaaaaa
cmp byte [rsp + 0x58], 0
je 0x14004b4ca
mov rax, qword [rsp + 0x70]
add rax, 8
mov qword [rsp + 0xb8], rax
movabs rax, 0xfffffffc00000000
and rax, r14
cmp rax, qword [0x140336a08]
jne 0x14004b63e
mov rcx, r14
call fcn.14010ecc8
lea r8, [rsp + 0x160]
mov rax, qword [rsp + 0x78]
mov qword [r8], rax
mov rax, qword [rsp + 0x90]
mov qword [r8 + 8], rax
mov eax, dword [rsp + 0x68]
mov dword [r8 + 0x10], eax
mov eax, dword [rsp + 0x88]
mov dword [r8 + 0x14], eax
mov qword [r8 + 0x18], r14
lea rdx, [rsp + 0x130]
mov rcx, qword [rsp + 0xb8]
call fcn.140139460
jmp 0x14004b4ca
mov rcx, r14
mov rdx, qword [rsp + 0x60]
call fcn.1400d7890
mov rcx, qword [rsp + 0xa0]
mov rax, qword [r15 + 0x10]
cmp rax, qword [r15 + 0x18]
jne 0x14004b2c2
jmp 0x140049094
mov rcx, qword [rsp + 0x98]
jmp 0x14004b6c2
mov rcx, qword [rsp + 0x70]
add rcx, 0x10
call fcn.140181600
cmp r8, rdx
je 0x14004c17e
mov rcx, qword [r8 + 0x18]
jmp 0x14004b8ad
lea rcx, [rsp + 0x6d0]
call qword [case.0x14017aab5.0]
lea rax, [rsp + 0x6d0]
mov rax, qword [rax]
jmp 0x14004ba59
mov rax, qword [rsp + 0x58]
cmp byte [rax + 0x128], 0
je 0x14004bb73
mov rcx, qword [rsp + 0x58]
call fcn.1400987b0
lea r9, [rsp + 0x6d0]
mov rcx, qword [rsp + 0x68]
mov byte [r9], cl
mov ecx, 0xaaaaaaaa
mov dword [r9 + 1], ecx
mov dword [r9 + 4], ecx
mov rcx, qword [rsp + 0x90]
mov qword [r9 + 8], rcx
mov rcx, qword [rsp + 0x88]
mov qword [r9 + 0x10], rcx
mov ecx, dword [rsp + 0x78]
mov dword [r9 + 0x18], ecx
mov ecx, dword [rsp + 0x70]
mov dword [r9 + 0x1c], ecx
movabs rcx, 0xaaaaaaaaaaaaaaaa
mov qword [r9 + 0x20], rcx
mov rcx, qword [r13]
mov r10, qword [rcx + 0x10]
mov byte [rsp + 0x20], al
lea rdx, [rsp + 0x160]
mov rcx, r13
mov r13, rdx
mov r8, qword [rsp + 0x60]
mov rax, r10
call qword [case.0x14017aab5.0]
mov rcx, r13
mov al, byte [r13]
mov qword [rsp + 0x68], rax
mov eax, dword [r13 + 1]
mov dword [rsp + 0x110], eax
mov eax, dword [r13 + 4]
mov dword [rsp + 0x113], eax
mov rax, qword [r13 + 8]
mov qword [rsp + 0x90], rax
mov rax, qword [r13 + 0x10]
mov qword [rsp + 0x88], rax
mov eax, dword [r13 + 0x18]
mov dword [rsp + 0x78], eax
mov eax, dword [r13 + 0x1c]
mov dword [rsp + 0x70], eax
mov rax, qword [r13 + 0x20]
jmp 0x14004bb7d
lea rcx, [rsp + 0x6d0]
call qword [case.0x14017aab5.0]
lea rax, [rsp + 0x6d0]
mov rax, qword [rax]
jmp 0x14004b979
mov qword [rsp + 0xa0], rcx
mov dword [rsp + 0x80], r13d
cmp dword [rax + 0x14], 1
jne 0x14004b868
movabs rcx, 0x8000000000000001
mov r13, qword [rax]
mov rax, qword [rax + 8]
lea rdx, [rax + rcx]
cmp rdx, 2
jae 0x14004b84a
cmp r13, rax
je 0x14004c16c
sar rax, 0x3f
lea r13, [rax + rcx]
dec r13
jmp 0x14004b86b
xor ecx, ecx
cmp r13, rax
setns cl
movabs rdx, 0x7fffffffffffffff
add rdx, rcx
sub r13, rax
cmovo r13, rdx
jmp 0x14004b86b
mov r13, qword [rax]
mov rax, qword [rsp + 0x60]
cmp byte [rax], 0
je 0x14004b923
mov rax, qword [rsp + 0x60]
mov rax, qword [rax + 8]
cmp r13, rax
mov r13d, dword [rsp + 0x80]
mov rcx, qword [rsp + 0xa0]
jg 0x14004907f
mov rax, qword [r15 + 0x10]
cmp rax, qword [r15 + 0x18]
je 0x14004c17e
mov rcx, qword [rax + 0x18]
mov rdx, qword [rsp + 0x60]
mov r8, r14
call fcn.1400a14e0
mov rax, qword [r15 + 0x10]
cmp rax, qword [r15 + 0x18]
mov r13d, dword [rsp + 0x80]
mov rcx, qword [rsp + 0xa0]
je 0x14004907f
cmp dword [rax + 0x14], 1
jne 0x14004ba98
mov r13, qword [rax]
mov rax, qword [rax + 8]
movabs rcx, 0x8000000000000001
add rcx, rax
cmp rcx, 2
jae 0x14004b9bc
cmp r13, rax
je 0x14004c178
sar rax, 0x3f
movabs rcx, 0x8000000000000001
lea r13, [rax + rcx]
dec r13
jmp 0x14004ba9b
mov rax, qword [fcn.1400c65b0]
lea rcx, [0x140038c30]
cmp rax, rcx
jne 0x14004b7e5
lea rcx, [rsp + 0x160]
mov qword [rcx], 0
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
lea rax, [rsp + 0x160]
mov rax, qword [rax]
movabs rcx, 0x8637bd05af7
cmp rax, rcx
jge 0x14004b998
imul rax, rax, 0xf4240
cqo
idiv qword [0x14033afc8]
mov rcx, qword [rsp + 0x60]
cmp byte [rcx], 0
mov qword [rcx + 8], rax
jne 0x14004b882
mov rcx, qword [rsp + 0x60]
mov byte [rcx], 1
jmp 0x14004b882
mov rcx, qword [0x14033afc8]
cqo
idiv rcx
imul r8, rax, 0xf4240
imul rax, rdx, 0xf4240
cqo
idiv rcx
add rax, r8
jmp 0x14004b979
xor ecx, ecx
cmp r13, rax
setns cl
movabs rdx, 0x7fffffffffffffff
add rcx, rdx
sub r13, rax
cmovo r13, rcx
jmp 0x14004ba9b
mov rax, qword [fcn.1400c65b0]
lea rcx, [0x140038c30]
cmp rax, rcx
jne 0x14004b6dd
mov qword [rsp + 0x160], 0
lea rcx, [rsp + 0x160]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rax, qword [rsp + 0x160]
movabs rcx, 0x8637bd05af7
cmp rax, rcx
jl 0x14004ba49
mov rcx, qword [0x14033afc8]
cqo
idiv rcx
imul r8, rax, 0xf4240
imul rax, rdx, 0xf4240
cqo
idiv rcx
add rax, r8
jmp 0x14004ba59
imul rax, rax, 0xf4240
cqo
idiv qword [0x14033afc8]
mov rcx, qword [rsp + 0x60]
cmp byte [rcx], 0
mov qword [rcx + 8], rax
jne 0x14004bab2
mov rcx, qword [rsp + 0x60]
mov byte [rcx], 1
jmp 0x14004bab2
mov rdx, qword [rsp + 0x58]
mov rcx, qword [rdx + 8]
mov rdx, qword [rdx + 0xb8]
mov cl, byte [rcx + 0x51]
xor r8d, r8d
cmp cl, byte [rdx + 0x38]
setae r8b
mov dword [rsp + 0x78], r8d
jmp 0x14004bb38
mov r13, qword [rax]
mov rax, qword [rsp + 0x60]
cmp byte [rax], 0
je 0x14004b9dd
mov rax, qword [rsp + 0x60]
mov rax, qword [rax + 8]
mov r8, qword [r15 + 0x10]
mov rdx, qword [r15 + 0x18]
cmp r13, rax
jle 0x14004b6cb
cmp r8, rdx
mov r13d, dword [rsp + 0x80]
mov rcx, qword [rsp + 0xa0]
je 0x14004907f
mov rcx, qword [r8 + 0x18]
mov eax, 0xaaaaaaaa
mov dword [rsp + 0x113], eax
mov dword [rsp + 0x110], eax
mov rax, qword [rcx + 0xc8]
mov qword [rsp + 0x58], rcx
cmp rax, qword [rcx + 0xd0]
je 0x14004bc33
mov rcx, qword [rsp + 0x58]
cmp byte [rcx + 0x128], 0
je 0x14004bc33
mov dword [rsp + 0x78], 0
mov rcx, qword [rsp + 0x58]
cmp dword [rcx + 0xe0], 0
jne 0x14004ba71
mov rcx, qword [rax + 0x30]
mov qword [rsp + 0x90], rcx
mov rcx, qword [rax + 0x38]
mov qword [rsp + 0x88], rcx
mov eax, dword [rax + 0x40]
mov dword [rsp + 0x70], eax
mov al, 1
mov qword [rsp + 0x68], rax
mov rax, qword [rsp + 0x58]
mov r13, qword [rax + 0xa8]
test r13, r13
jne 0x14004b6fb
movabs rax, 0xaaaaaaaaaaaaaaaa
mov rcx, qword [rsp + 0x58]
mov cl, byte [rcx + 0x198]
cmp byte [rsp + 0x68], 0
je 0x14004bc86
test cl, cl
je 0x14004bc86
mov rcx, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x90]
cmp qword [rcx + 0x1a0], rdx
jne 0x14004bc9b
mov rcx, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x88]
cmp qword [rcx + 0x1a8], rdx
jne 0x14004bc9b
mov rcx, qword [rsp + 0x58]
mov edx, dword [rsp + 0x78]
cmp dword [rcx + 0x1b0], edx
jne 0x14004bc9b
mov rcx, qword [rsp + 0x58]
mov edx, dword [rsp + 0x70]
cmp dword [rcx + 0x1b4], edx
jne 0x14004bc9b
mov rax, qword [r15 + 0x10]
cmp rax, qword [r15 + 0x18]
mov r13d, dword [rsp + 0x80]
mov rcx, qword [rsp + 0xa0]
je 0x14004907f
mov rdx, qword [rsp + 0x58]
mov rax, qword [rax + 0x18]
mov qword [rsp + 0x58], rax
cmp rdx, rax
je 0x14004907f
jmp 0x14004c01d
xor eax, eax
mov qword [rsp + 0x68], rax
xor eax, eax
mov qword [rsp + 0x90], rax
xor eax, eax
mov qword [rsp + 0x88], rax
mov dword [rsp + 0x78], 0
mov dword [rsp + 0x70], 0
jmp 0x14004bb5e
xor eax, eax
mov qword [rsp + 0xb8], rax
xor eax, eax
mov qword [rsp + 0xc8], rax
xor eax, eax
mov qword [rsp + 0xd0], rax
jmp 0x14004bd4f
cmp byte [rsp + 0x68], 0
setne dl
test cl, cl
setne cl
cmp dl, cl
je 0x14004bbf9
mov r8, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x68]
mov byte [r8 + 0x198], cl
mov ecx, dword [rsp + 0x110]
mov edx, dword [rsp + 0x113]
mov dword [r8 + 0x199], ecx
mov dword [r8 + 0x19c], edx
mov rcx, qword [rsp + 0x90]
mov qword [r8 + 0x1a0], rcx
mov rcx, qword [rsp + 0x88]
mov qword [r8 + 0x1a8], rcx
mov ecx, dword [rsp + 0x78]
mov dword [r8 + 0x1b0], ecx
mov ecx, dword [rsp + 0x70]
mov dword [r8 + 0x1b4], ecx
mov qword [r8 + 0x1b8], rax
mov rax, qword [r8 + 0xa0]
mov r13, qword [rax + 0x10]
mov qword [rsp + 0x98], rax
mov rax, qword [rax + 0x18]
mov qword [rsp + 0xc0], rax
cmp r13, rax
je 0x14004bc63
mov rax, qword [r13]
mov qword [rsp + 0xd0], rax
mov rax, qword [r13 + 8]
mov qword [rsp + 0xc8], rax
mov eax, dword [r13 + 0x14]
mov qword [rsp + 0xb8], rax
mov rax, qword [rsp + 0x58]
mov rax, qword [rax + 0x120]
mov qword [rsp + 0xb0], rax
cmp rax, 0xffffffffffffffff
je 0x14004bf7f
mov rax, qword [rsp + 0xc0]
sub rax, r13
sar rax, 5
cmp rax, qword [rsp + 0xb0]
jbe 0x14004b6b3
mov rax, qword [rsp + 0xb0]
shl rax, 5
mov eax, dword [r13 + rax + 0x10]
mov dword [rsp + 0xd8], eax
mov rax, qword [rsp + 0x98]
add rax, 8
mov qword [rsp + 0xe0], rax
cmp byte [rsp + 0x68], 0
je 0x14004beda
movabs rax, 0xfffffffc00000000
and rax, qword [rsp + 0x58]
mov r8, qword [rsp + 0xb0]
cmp rax, qword [0x140336a08]
jne 0x14004bdf7
mov rcx, qword [rsp + 0x58]
call fcn.14010ecc8
mov rax, qword [rsp + 0x58]
mov r8, qword [rax + 0x120]
lea r9, [rsp + 0x160]
mov rax, qword [rsp + 0x90]
mov qword [r9], rax
mov rax, qword [rsp + 0x88]
mov qword [r9 + 8], rax
mov eax, dword [rsp + 0x78]
mov dword [r9 + 0x10], eax
mov eax, dword [rsp + 0x70]
mov dword [r9 + 0x14], eax
mov rax, qword [rsp + 0x58]
mov qword [r9 + 0x18], rax
lea rdx, [rsp + 0x130]
mov rcx, qword [rsp + 0xe0]
call fcn.1400d0d80
mov rcx, qword [rsp + 0x98]
mov rax, qword [rcx + 0x10]
mov rcx, qword [rcx + 0x18]
cmp rax, rcx
je 0x14004bed0
mov r8, qword [rax]
mov r9, qword [rax + 8]
mov edx, dword [rax + 0x14]
cmp qword [rsp + 0xb0], 0xffffffffffffffff
je 0x14004be84
cmp dword [rsp + 0xd8], 1
jne 0x14004be84
mov r10, qword [rsp + 0x98]
dec dword [r10 + 0x28]
cmp byte [rsp + 0x68], 0
je 0x14004be9e
cmp dword [rsp + 0x78], 1
jne 0x14004be9e
mov r10, qword [rsp + 0x98]
inc dword [r10 + 0x28]
cmp r13, qword [rsp + 0xc0]
je 0x14004bef4
cmp rax, rcx
je 0x14004bef4
cmp r8, qword [rsp + 0xd0]
jne 0x14004bf0f
cmp r9, qword [rsp + 0xc8]
jne 0x14004bf0f
cmp edx, dword [rsp + 0xb8]
je 0x14004bbf9
jmp 0x14004bf0f
xor r8d, r8d
xor r9d, r9d
xor edx, edx
jmp 0x14004be63
mov rcx, qword [rsp + 0xe0]
mov rdx, qword [rsp + 0xb0]
call fcn.140139940
jmp 0x14004be44
cmp rax, rcx
setne dl
cmp r13, qword [rsp + 0xc0]
setne r8b
cmp r8b, dl
je 0x14004bbf9
cmp rax, rcx
je 0x14004bf62
movupd xmm0, xmmword [rax]
mov eax, dword [rax + 0x14]
movupd xmmword [rsp + 0x168], xmm0
mov dword [rsp + 0x178], 0
mov dword [rsp + 0x17c], eax
mov al, 1
lea r8, [rsp + 0x160]
mov byte [r8], al
mov rcx, qword [rsp + 0x98]
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
mov rdx, qword [rsp + 0x60]
call qword [case.0x14017aab5.0]
jmp 0x14004bbf9
xorpd xmm0, xmm0
movupd xmmword [rsp + 0x168], xmm0
mov qword [rsp + 0x178], 0
xor eax, eax
jmp 0x14004bf38
mov dword [rsp + 0xd8], 0xaaaaaaaa
cmp byte [rsp + 0x68], 0
je 0x14004be44
mov rax, qword [rsp + 0x98]
add rax, 8
mov qword [rsp + 0xe0], rax
movabs rax, 0xfffffffc00000000
and rax, qword [rsp + 0x58]
cmp rax, qword [0x140336a08]
jne 0x14004bfcb
mov rcx, qword [rsp + 0x58]
call fcn.14010ecc8
lea r8, [rsp + 0x160]
mov rax, qword [rsp + 0x90]
mov qword [r8], rax
mov rax, qword [rsp + 0x88]
mov qword [r8 + 8], rax
mov eax, dword [rsp + 0x78]
mov dword [r8 + 0x10], eax
mov eax, dword [rsp + 0x70]
mov dword [r8 + 0x14], eax
mov rax, qword [rsp + 0x58]
mov qword [r8 + 0x18], rax
lea rdx, [rsp + 0x130]
mov rcx, qword [rsp + 0xe0]
call fcn.140139460
jmp 0x14004be44
mov rcx, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x60]
call fcn.1400d7890
mov rcx, qword [rsp + 0xa0]
mov rax, qword [r15 + 0x10]
cmp rax, qword [r15 + 0x18]
jne 0x14004bc17
jmp 0x14004907f
cmp dword [rbp + 0x80], 0
jle 0x14004925f
mov r15, rdi
lea rsi, [rbp + 0x88]
lea rdi, [rsp + 0x160]
mov r8d, 0xb8
mov rcx, rdi
mov dl, 0xaa
call fcn.14013f660
mov rcx, r12
mov rdx, rdi
call fcn.14008cac0
mov rax, qword [r12 + 0x30]
mov qword [rdi + 0xa8], rax
mov eax, dword [r12 + 0x78]
mov dword [rdi + 0xb0], eax
mov rcx, rsi
mov rdx, rdi
call fcn.140133dd0
mov rcx, qword [rdi + 0x98]
test rcx, rcx
je 0x14004c0b9
lock dec dword [rcx]
jne 0x14004c0b9
call fcn.14013a6ac
mov rsi, qword [rsp + 0x1e8]
test rsi, rsi
jne 0x14004c0db
mov rcx, qword [rsp + 0x160]
test rcx, rcx
jne 0x14004c111
mov rdi, r15
jmp 0x1400490c8
lock dec dword [rsi + 8]
jne 0x14004c0c6
mov rcx, qword [rsi]
mov rax, qword [rcx + 8]
lea rdx, [0x1401f9500]
cmp qword [rcx + 0x10], rdx
jne 0x14004c101
lea rcx, [0x1402382c0]
cmp rax, rcx
je 0x14004c122
mov rcx, rsi
mov edx, 1
call qword [case.0x14017aab5.0]
jmp 0x14004c0c6
lock dec dword [rcx]
jne 0x14004c0d3
mov rax, qword [rcx + 0x10]
call qword [case.0x14017aab5.0]
jmp 0x14004c0d3
mov rcx, qword [rsi + 0x18]
test rcx, rcx
je 0x14004c135
lock dec dword [rcx]
jne 0x14004c135
call fcn.14013a6ac
mov rcx, qword [rsi + 0x10]
test rcx, rcx
je 0x14004c143
lock dec dword [rcx]
je 0x14004c150
mov rcx, rsi
call fcn.14013a6ac
jmp 0x14004c0c6
call fcn.1400e5440
jmp 0x14004c143
int3
int3
int3
int3
int3
int3
int3
int3
int3
int3
int3
int3
int3
int3
int3