Function at 0x14004e860
Capabilities:
Get thread local storage value

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x88
mov r12, r9
mov r13d, edx
mov qword [rsp + 0x30], rcx
mov rsi, qword [rsp + 0xf0]
mov rax, qword [0x14010c038]
xor rax, rsp
mov qword [rsp + 0x80], rax
test r8, r8
jne 0x14004e9d1
test r13b, 4
je 0x14004f1a1
mov eax, 0x40
mov ecx, 0x40
test r12, r12
je 0x14004e8c2
bsr rcx, r12
xor rcx, 0x3f
sub rax, rcx
lea rcx, [0x1400edd30]
mov cl, byte [rax + rcx]
mov rdx, r12
shr rdx, cl
and edx, 7
lea rcx, [0x1400edd80]
mov rcx, qword [rcx + rax*8]
and rcx, r12
lea rax, [rdx + rax*8]
cmp rcx, 1
sbb rax, 0xffffffffffffffff
lea rcx, [0x1400edf88]
movzx ebp, word [rcx + rax*2 + 0x400]
mov byte [rsp + 0x70], 0
mov rax, qword [rsp + 0x30]
cmp byte [rax + 2], 0
je 0x14004f9a0
mov esi, dword [0x140117fa0]
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
mov ecx, esi
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rsi, rax
test ebx, ebx
jne 0x14004f4c9
cmp rsi, 1
jbe 0x14004fa50
add qword [rsi + 0x298], 1
cmp bp, 0x29
jae 0x14004ee20
mov rdi, rbp
shl rdi, 4
lea rbx, [rsi + rdi]
cmp qword [rsi + rdi], 0
je 0x14004f08b
add qword [rsi + 0x2a0], 1
mov r15, qword [rbx]
mov rax, qword [r15]
test rax, rax
je 0x14004e98b
mov rcx, rax
not rcx
cmp qword [r15 + 8], rcx
jne 0x140050373
add byte [rsi + rdi + 8], 0xff
bswap rax
mov qword [rbx], rax
lea rax, [rsi + rdi]
add rax, 0xa
test r15, r15
je 0x14004ee2e
movzx edi, word [rax]
test r13b, 2
je 0x14004edf9
cmp byte [rsp + 0x70], 0
jne 0x14004edf9
mov rcx, r15
xor edx, edx
mov r8, rdi
call fcn.14007c0b0
jmp 0x14004edf9
mov qword [rsp + 0x40], r8
test r12, r12
je 0x14004f345
cmp r12, 0x7fe00001
jae 0x14004fade
mov dword [rsp + 0x2c], r13d
test r13b, 4
sete al
movabs rdx, 0xaaaaaaaaaaaaaaaa
mov r13b, byte [0x140118090]
mov rcx, rdx
mov qword [rsp + 0x50], rdx
mov qword [rsp + 0x58], rdx
and r13b, al
mov qword [rsp + 0x38], r12
jne 0x14004fb51
mov rcx, qword [rsp + 0x40]
mov rax, rcx
and rax, 0xffffffffffe00000
shr rcx, 9
and ecx, 0xfe0
lea rsi, [rax + rcx]
add rsi, 0x1000
movzx eax, word [rax + rcx + 0x101e]
mov r15, rax
neg r15
shl rax, 5
mov rbp, rsi
sub rbp, rax
mov rax, rbp
and rax, 0xfffffffffffff000
mov rbx, qword [rax]
lea r14, [rbx + 8]
mov edi, 1
mov dword [rsp + 0x4c], 0
mov r12, qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
mov rcx, r14
call r12
test al, al
jne 0x14004eabf
jmp 0x14004f332
pause
dec eax
jne 0x14004ea92
mov edx, dword [rsp + 0x4c]
add edx, edi
add edi, edi
cmp edi, 0x40
mov ecx, 0x40
cmovge edi, ecx
mov dword [rsp + 0x4c], edx
cmp edx, 0x3e8
jl 0x14004ea83
mov rcx, r14
call sub.KERNEL32.dll_AcquireSRWLockExclusive
shl r15, 5
cmp byte [rsi + r15 + 0x1d], 0
jne 0x14004fb6d
mov rax, qword [rsi + r15 + 0x10]
mov eax, dword [rax + 0x18]
mov r12, qword [rsp + 0x38]
mov qword [rsp + 0x58], rax
mov rax, qword [rsi + r15 + 0x10]
cmp byte [rax + 0x1c], 0
je 0x14004faf0
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov eax, 0x40
mov ecx, 0x40
test r12, r12
je 0x14004eb10
bsr rcx, r12
xor rcx, 0x3f
sub rax, rcx
lea rcx, [0x1400edd30]
mov cl, byte [rax + rcx]
mov rdx, r12
shr rdx, cl
and edx, 7
lea rcx, [0x1400edd80]
mov rcx, qword [rcx + rax*8]
and rcx, r12
lea rax, [rdx + rax*8]
cmp rcx, 1
sbb rax, 0xffffffffffffffff
lea rcx, [0x1400edf88]
movzx eax, word [rcx + rax*2 + 0x400]
lea rax, [rax + rax*4]
cmp byte [rbx + rax*8 + 0x2c], 0
je 0x14004fb3e
mov eax, dword [rbx + rax*8 + 0x28]
movzx ecx, word [rsi + 0x1e]
shl rcx, 5
neg rcx
mov rcx, qword [rsi + rcx + 0x10]
mov ecx, dword [rcx + 0x18]
cmp rax, rcx
je 0x14004efa8
mov r13d, dword [rsp + 0x2c]
test r13b, 4
je 0x14004f66b
mov eax, 0x40
mov ecx, 0x40
test r12, r12
je 0x14004eba4
bsr rcx, r12
xor rcx, 0x3f
sub rax, rcx
lea rcx, [0x1400edd30]
mov cl, byte [rax + rcx]
mov rdx, r12
shr rdx, cl
and edx, 7
lea rcx, [0x1400edd80]
mov rcx, qword [rcx + rax*8]
and rcx, r12
lea rax, [rdx + rax*8]
cmp rcx, 1
sbb rax, 0xffffffffffffffff
lea rcx, [0x1400edf88]
movzx esi, word [rcx + rax*2 + 0x400]
mov byte [rsp + 0x70], 0
mov rax, qword [rsp + 0x30]
cmp byte [rax + 2], 0
je 0x14004f5b5
mov ebp, dword [0x140117fa0]
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
mov ecx, ebp
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rbp, rax
test ebx, ebx
jne 0x14004f4f7
cmp rbp, 1
jbe 0x14004fc15
add qword [rbp + 0x298], 1
cmp si, 0x29
jae 0x14004eee6
mov rdi, rsi
shl rdi, 4
lea rbx, [rdi + rbp]
cmp qword [rbp + rdi], 0
je 0x14004f308
inc qword [rbp + 0x2a0]
mov r15, qword [rbx]
mov rax, qword [r15]
test rax, rax
je 0x14004ec6d
mov rcx, rax
not rcx
cmp qword [r15 + 8], rcx
jne 0x140050373
dec byte [rbp + rdi + 8]
bswap rax
mov qword [rbx], rax
lea rax, [rdi + rbp]
add rax, 0xa
test r15, r15
je 0x14004eef4
movzx edi, word [rax]
test r13b, 2
je 0x14004ec9c
cmp byte [rsp + 0x70], 0
je 0x14004fcb5
test r15, r15
je 0x14004fade
mov rax, qword [rsp + 0x58]
cmp rax, r12
ja 0x14004ecb2
mov r12, rax
mov rcx, r15
mov rsi, qword [rsp + 0x40]
mov rdx, rsi
mov r8, r12
call fcn.14007bca0
mov al, byte [0x140118090]
test al, 1
je 0x14004ece7
mov rcx, rsi
call fcn.140071c50
mov rcx, rsi
call fcn.140071c60
test al, al
jne 0x14004edf9
mov rax, rsi
and rax, 0xffffffffffe00000
shr rsi, 9
and esi, 0xfe0
lea r14, [rax + rsi]
add r14, 0x1000
movzx ecx, word [rax + rsi + 0x101e]
mov rdi, rcx
neg rdi
shl rcx, 5
mov r13, r14
sub r13, rcx
mov rcx, r13
and rcx, 0xfffffffffffff000
mov r12, qword [rcx]
cmp byte [r12], 2
je 0x14004fb76
cmp byte [r12 + 2], 0
je 0x14004efca
mov rax, rdi
shl rax, 5
mov rsi, qword [r14 + rax + 0x10]
cmp byte [rsi + 0x1c], 0
je 0x14004efca
mov ebp, dword [0x140117fa0]
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
mov ecx, ebp
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rbp, rax
test ebx, ebx
jne 0x14004f504
cmp rbp, 2
jb 0x14004efca
sub rsi, r12
add rsi, 0xfffffffffffffff0
sar rsi, 3
movabs rax, 0xcccccccccccccccd
imul rax, rsi
add qword [rbp + 0x2c0], 1
cmp rax, 0x28
ja 0x14004efc3
shl rax, 4
mov rcx, qword [rbp + rax]
bswap rcx
mov rdx, qword [rsp + 0x40]
mov qword [rdx], rcx
not rcx
mov qword [rdx + 8], rcx
mov qword [rbp + rax], rdx
add byte [rbp + rax + 8], 1
add qword [rbp + 0x2c8], 1
movzx r8d, byte [rbp + rax + 9]
cmp byte [rbp + rax + 8], r8b
jae 0x14004fc9f
mov al, byte [rbp + 0x290]
test al, 1
jne 0x14004f7d4
mov rcx, qword [rsp + 0x80]
xor rcx, rsp
call fcn.1400797f0
mov rax, r15
add rsp, 0x88
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
inc qword [rsi + 0x2b8]
inc qword [rsi + 0x2a8]
lea rbx, [rbp*4]
add rbx, rbp
mov rax, qword [rsp + 0x30]
lea rbp, [rax + rbx*8]
add rbp, 0x10
lea rsi, [rax + 8]
mov edi, 1
xor r14d, r14d
mov r15, qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
mov rcx, rsi
call r15
test al, al
jne 0x14004ee8f
jmp 0x14004f4e8
pause
dec eax
jne 0x14004ee68
add r14d, edi
add edi, edi
cmp edi, 0x40
mov eax, 0x40
cmovge edi, eax
cmp r14d, 0x3e8
jl 0x14004ee59
mov rcx, rsi
call sub.KERNEL32.dll_AcquireSRWLockExclusive
mov rax, qword [rbp]
mov r15, qword [rax]
test r15, r15
je 0x14004f12b
mov byte [rsp + 0x70], 0
mov rcx, qword [rsp + 0x30]
mov edi, dword [rcx + rbx*8 + 0x28]
mov rcx, qword [r15]
test rcx, rcx
je 0x14004eec5
mov rdx, rcx
not rdx
cmp qword [r15 + 8], rdx
jne 0x140050373
bswap rcx
mov qword [rax], rcx
inc word [rax + 0x18]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
test r15, r15
jne 0x14004e9aa
jmp 0x14004f4c1
inc qword [rbp + 0x2b8]
inc qword [rbp + 0x2a8]
lea rbx, [rsi + rsi*4]
mov rax, qword [rsp + 0x30]
lea rbp, [rax + rbx*8]
add rbp, 0x10
lea rsi, [rax + 8]
mov edi, 1
xor r14d, r14d
mov r15, qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
mov rcx, rsi
call r15
test al, al
jne 0x14004ef4e
jmp 0x14004f520
pause
dec eax
jne 0x14004ef27
add r14d, edi
add edi, edi
cmp edi, 0x40
mov eax, 0x40
cmovge edi, eax
cmp r14d, 0x3e8
jl 0x14004ef18
mov rcx, rsi
call sub.KERNEL32.dll_AcquireSRWLockExclusive
mov rax, qword [rbp]
mov r15, qword [rax]
test r15, r15
je 0x14004f0b5
mov byte [rsp + 0x70], 0
mov rcx, qword [rsp + 0x30]
mov edi, dword [rcx + rbx*8 + 0x28]
mov rcx, qword [r15]
test rcx, rcx
je 0x14004ef84
mov rdx, rcx
not rdx
cmp qword [r15 + 8], rdx
jne 0x140050373
bswap rcx
mov qword [rax], rcx
inc word [rax + 0x18]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
test r15, r15
jne 0x14004ec8b
xor r15d, r15d
jmp 0x14004ec9c
lea rax, [rsi + r15]
add rax, 0x1d
cmp byte [rax], 0
jne 0x14004fcc7
mov r15, qword [rsp + 0x40]
jmp 0x14004edf9
inc qword [rbp + 0x2d0]
add r12, 8
xorps xmm0, xmm0
movaps xmmword [rsp + 0x70], xmm0
mov ebx, 1
xor ebp, ebp
mov rsi, qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
mov rcx, r12
call rsi
test al, al
jne 0x14004f017
jmp 0x14004f551
pause
dec eax
jne 0x14004eff2
add ebp, ebx
add ebx, ebx
cmp ebx, 0x40
mov eax, 0x40
cmovge ebx, eax
cmp ebp, 0x3e8
jl 0x14004efe4
mov rcx, r12
call sub.KERNEL32.dll_AcquireSRWLockExclusive
mov rax, qword [r13]
mov rcx, qword [rsp + 0x40]
cmp rax, rcx
je 0x14004fcd0
bswap rax
mov qword [rcx], rax
not rax
mov qword [rcx + 8], rax
mov qword [r13], rcx
shl rdi, 5
movzx eax, word [r14 + rdi + 0x18]
dec eax
mov word [r14 + rdi + 0x18], ax
test ax, ax
jle 0x14004f4d6
xorps xmm0, xmm0
movaps xmmword [rsp + 0x60], xmm0
movaps xmm0, xmmword [rsp + 0x60]
movaps xmmword [rsp + 0x70], xmm0
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
cmp qword [rsp + 0x70], 0
je 0x14004edf9
lea rcx, [rsp + 0x70]
call fcn.1400468a0
jmp 0x14004edf9
inc qword [rsi + 0x2b0]
inc qword [rsi + 0x2a8]
mov rcx, rsi
mov rdx, rbp
call fcn.14006e800
mov r15, qword [rbx]
test r15, r15
jne 0x14004e973
jmp 0x14004ee2e
lea rax, [rsp + 0x70]
mov qword [rsp + 0x20], rax
mov rcx, rbp
mov rdx, qword [rsp + 0x30]
mov r8d, r13d
mov r9, r12
call fcn.140050620
test rax, rax
je 0x14004fce2
mov r15, rax
and rax, 0xffffffffffe00000
mov rcx, r15
shr rcx, 9
and ecx, 0xfe0
lea rbp, [rax + rcx]
add rbp, 0x1000
movzx edx, word [rbp + 0x1e]
mov rcx, rdx
neg rcx
shl rdx, 5
mov rax, rbp
sub rax, rdx
cmp byte [rax + 0x1d], 0
jne 0x14004f65d
shl rcx, 5
mov rax, qword [rbp + rcx + 0x10]
mov edi, dword [rax + 0x18]
jmp 0x14004ef8e
lea rax, [rsp + 0x70]
mov qword [rsp + 0x20], rax
mov rcx, rbp
mov rdx, qword [rsp + 0x30]
mov r8d, r13d
mov r9, r12
call fcn.140050620
test rax, rax
je 0x14004fcf4
mov r15, rax
and rax, 0xffffffffffe00000
mov rcx, r15
shr rcx, 9
and ecx, 0xfe0
lea rbp, [rax + rcx]
add rbp, 0x1000
movzx edx, word [rbp + 0x1e]
mov rcx, rdx
neg rcx
shl rdx, 5
mov rax, rbp
sub rax, rdx
cmp byte [rax + 0x1d], 0
jne 0x14004fd06
shl rcx, 5
mov rax, qword [rbp + rcx + 0x10]
mov edi, dword [rax + 0x18]
jmp 0x14004eecf
mov qword [rsp + 0x70], 0
mov r15b, byte [0x140118090]
test r15b, 1
jne 0x14004fd1b
mov eax, 0x40
mov ecx, 0x40
test r12, r12
je 0x14004f1d2
bsr rcx, r12
xor rcx, 0x3f
mov dword [rsp + 0x2c], r13d
sub rax, rcx
lea rcx, [0x1400edd30]
mov cl, byte [rax + rcx]
mov rdx, r12
shr rdx, cl
and edx, 7
lea rcx, [0x1400edd80]
mov rcx, qword [rcx + rax*8]
mov qword [rsp + 0x38], r12
and rcx, r12
lea rax, [rdx + rax*8]
cmp rcx, 1
sbb rax, 0xffffffffffffffff
lea rcx, [0x1400edf88]
movzx r14d, word [rcx + rax*2 + 0x400]
mov byte [rsp + 0x60], 0
mov rcx, qword [rsp + 0x30]
cmp byte [rcx + 2], 0
jne 0x14004fd46
lea rax, [r14 + r14*4]
lea rbp, [rcx + rax*8]
add rbp, 0x10
lea rsi, [rcx + 8]
mov edi, 1
xor ebx, ebx
mov r12, qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
mov r13d, 0x40
mov rcx, rsi
call r12
test al, al
jne 0x14004f284
jmp 0x14004f7e1
pause
dec eax
jne 0x14004f263
add ebx, edi
add edi, edi
cmp edi, 0x40
cmovge edi, r13d
cmp ebx, 0x3e8
jl 0x14004f254
mov rcx, rsi
call sub.KERNEL32.dll_AcquireSRWLockExclusive
mov rax, qword [rbp]
mov rbx, qword [rax]
test rbx, rbx
je 0x14004f7ff
mov byte [rsp + 0x60], 0
lea rcx, [r14 + r14*4]
mov rdx, qword [rsp + 0x30]
mov ebp, dword [rdx + rcx*8 + 0x28]
mov rcx, qword [rbx]
test rcx, rcx
mov edi, dword [rsp + 0x2c]
je 0x14004f2c2
mov rdx, rcx
not rdx
cmp qword [rbx + 8], rdx
jne 0x140050373
bswap rcx
mov qword [rax], rcx
inc word [rax + 0x18]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
test rbx, rbx
je 0x14004fd14
test dil, 2
je 0x14004f2ef
cmp byte [rsp + 0x60], 0
je 0x14004feaf
mov qword [rsp + 0x70], rbx
test r15b, 1
jne 0x14004fde4
mov r15, qword [rsp + 0x70]
jmp 0x14004edf9
inc qword [rbp + 0x2b0]
inc qword [rbp + 0x2a8]
mov rcx, rbp
mov rdx, rsi
call fcn.14006e800
mov r15, qword [rbx]
test r15, r15
jne 0x14004ec55
jmp 0x14004eef4
mov eax, edi
test edi, edi
jg 0x14004ea92
mov edx, dword [rsp + 0x4c]
jmp 0x14004ea9e
mov al, byte [0x140118090]
test al, 1
jne 0x14004f52f
mov rcx, qword [rsp + 0x40]
mov rax, rcx
and rax, 0xffffffffffe00000
shr rcx, 9
and ecx, 0xfe0
lea r14, [rax + rcx]
add r14, 0x1000
movzx ecx, word [r14 + 0x1e]
mov rdi, rcx
neg rdi
shl rcx, 5
mov r15, r14
sub r15, rcx
mov rcx, r15
and rcx, 0xfffffffffffff000
mov r13, qword [rcx]
cmp byte [r13], 2
je 0x14004fdfe
cmp byte [r13 + 2], 0
je 0x14004f414
mov rax, rdi
shl rax, 5
mov rsi, qword [r14 + rax + 0x10]
cmp byte [rsi + 0x1c], 0
je 0x14004f414
mov ebx, dword [0x140117fa0]
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebp, eax
mov ecx, ebx
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rbx, rax
test ebp, ebp
jne 0x14004f8f8
cmp rbx, 2
jb 0x14004f414
sub rsi, r13
add rsi, 0xfffffffffffffff0
sar rsi, 3
movabs rax, 0xcccccccccccccccd
imul rax, rsi
inc qword [rbx + 0x2c0]
cmp rax, 0x28
jbe 0x14004f560
inc qword [rbx + 0x2d0]
add r13, 8
xorps xmm0, xmm0
movaps xmmword [rsp + 0x70], xmm0
mov ebx, 1
xor ebp, ebp
mov r12, qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
mov esi, 0x40
mov rcx, r13
call r12
test al, al
jne 0x14004f462
jmp 0x14004f7f0
pause
dec eax
jne 0x14004f442
add ebp, ebx
add ebx, ebx
cmp ebx, 0x40
cmovge ebx, esi
cmp ebp, 0x3e8
jl 0x14004f433
mov rcx, r13
call sub.KERNEL32.dll_AcquireSRWLockExclusive
mov rax, qword [r15]
mov rcx, qword [rsp + 0x40]
cmp rax, rcx
je 0x14004fe9d
bswap rax
mov qword [rcx], rax
not rax
mov qword [rcx + 8], rax
mov qword [r15], rcx
shl rdi, 5
movzx eax, word [r14 + rdi + 0x18]
dec eax
mov word [r14 + rdi + 0x18], ax
test ax, ax
jle 0x14004f511
xorps xmm0, xmm0
movaps xmmword [rsp + 0x60], xmm0
movaps xmm0, xmmword [rsp + 0x60]
movaps xmmword [rsp + 0x70], xmm0
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
cmp qword [rsp + 0x70], 0
jne 0x14004fea0
xor r15d, r15d
jmp 0x14004edf9
mov ecx, ebx
call qword [sym.imp.KERNEL32.dll_SetLastError]
jmp 0x14004e936
lea rdx, [rsp + 0x60]
mov rcx, r13
call fcn.14006ebd0
jmp 0x14004f05d
mov eax, edi
test edi, edi
jg 0x14004ee68
jmp 0x14004ee71
mov ecx, ebx
call qword [sym.imp.KERNEL32.dll_SetLastError]
jmp 0x14004ec18
mov ecx, ebx
call qword [sym.imp.KERNEL32.dll_SetLastError]
jmp 0x14004ed78
lea rdx, [rsp + 0x60]
mov rcx, r15
call fcn.14006ebd0
jmp 0x14004f4a2
mov eax, edi
test edi, edi
jg 0x14004ef27
jmp 0x14004ef30
mov rsi, qword [rsp + 0x40]
mov rcx, rsi
call fcn.140071c50
mov rcx, rsi
call fcn.140071c60
test al, al
je 0x14004f353
jmp 0x14004f4c1
mov eax, ebx
test ebx, ebx
jg 0x14004eff2
jmp 0x14004effa
shl rax, 4
mov rcx, qword [rbx + rax]
bswap rcx
mov rdx, qword [rsp + 0x40]
mov qword [rdx], rcx
not rcx
mov qword [rdx + 8], rcx
mov qword [rbx + rax], rdx
inc byte [rbx + rax + 8]
inc qword [rbx + 0x2c8]
movzx r8d, byte [rbx + rax + 9]
cmp byte [rbx + rax + 8], r8b
jae 0x14004ff37
mov al, byte [rbx + 0x290]
test al, 1
je 0x14004f4c1
mov rcx, rbx
call fcn.14006eb50
jmp 0x14004f4c1
lea rax, [rsi + rsi*4]
mov rcx, qword [rsp + 0x30]
lea rbp, [rcx + rax*8]
add rbp, 0x10
lea r14, [rcx + 8]
mov edi, 1
xor ebx, ebx
mov r15, qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
mov rcx, r14
call r15
test al, al
jne 0x14004f611
jmp 0x14004f982
pause
dec eax
jne 0x14004f5e7
add ebx, edi
add edi, edi
cmp edi, 0x40
mov eax, 0x40
cmovge edi, eax
cmp ebx, 0x3e8
mov r13d, dword [rsp + 0x2c]
jl 0x14004f5d8
mov rcx, r14
call sub.KERNEL32.dll_AcquireSRWLockExclusive
mov rax, qword [rbp]
mov r15, qword [rax]
test r15, r15
je 0x14004f87d
mov byte [rsp + 0x70], 0
lea rcx, [rsi + rsi*4]
mov rdx, qword [rsp + 0x30]
mov edi, dword [rdx + rcx*8 + 0x28]
mov rcx, qword [r15]
test rcx, rcx
je 0x14004f64b
mov rdx, rcx
not rdx
cmp qword [r15 + 8], rdx
jne 0x140050373
bswap rcx
mov qword [rax], rcx
inc word [rax + 0x18]
mov rcx, r14
jmp 0x14004ef91
shl rcx, 5
mov rdi, qword [rbp + rcx + 0x20]
jmp 0x14004ef8e
mov qword [rsp + 0x70], 0
mov bl, byte [0x140118090]
test bl, 1
jne 0x14004ffa1
mov eax, 0x40
mov ecx, 0x40
test r12, r12
je 0x14004f69a
bsr rcx, r12
xor rcx, 0x3f
mov byte [rsp + 0x4c], bl
sub rax, rcx
lea rcx, [0x1400edd30]
mov cl, byte [rax + rcx]
mov rdx, r12
shr rdx, cl
and edx, 7
lea rcx, [0x1400edd80]
mov rcx, qword [rcx + rax*8]
and rcx, r12
lea rax, [rdx + rax*8]
cmp rcx, 1
sbb rax, 0xffffffffffffffff
lea rcx, [0x1400edf88]
movzx r15d, word [rcx + rax*2 + 0x400]
mov byte [rsp + 0x60], 0
mov rcx, qword [rsp + 0x30]
cmp byte [rcx + 2], 0
jne 0x14004ffcb
mov r14, r15
lea rax, [r15 + r15*4]
lea rbp, [rcx + rax*8]
add rbp, 0x10
lea rsi, [rcx + 8]
mov edi, 1
xor ebx, ebx
mov r15, qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
mov r12d, 0x40
mov rcx, rsi
call r15
test al, al
jne 0x14004f74e
jmp 0x14004f991
pause
dec eax
jne 0x14004f728
add ebx, edi
add edi, edi
cmp edi, 0x40
cmovge edi, r12d
cmp ebx, 0x3e8
mov r13d, dword [rsp + 0x2c]
jl 0x14004f719
mov rcx, rsi
call sub.KERNEL32.dll_AcquireSRWLockExclusive
mov rax, qword [rbp]
mov rbx, qword [rax]
test rbx, rbx
je 0x14004f905
mov byte [rsp + 0x60], 0
lea rcx, [r14 + r14*4]
mov rdx, qword [rsp + 0x30]
mov edi, dword [rdx + rcx*8 + 0x28]
mov rcx, qword [rbx]
test rcx, rcx
je 0x14004f788
mov rdx, rcx
not rdx
cmp qword [rbx + 8], rdx
jne 0x140050373
bswap rcx
mov qword [rax], rcx
inc word [rax + 0x18]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
test rbx, rbx
je 0x14004ff9a
test r13b, 2
je 0x14004f7b5
cmp byte [rsp + 0x60], 0
je 0x1400500cf
mov r12, qword [rsp + 0x38]
mov qword [rsp + 0x70], rbx
test byte [rsp + 0x4c], 1
jne 0x14005006a
mov r15, qword [rsp + 0x70]
jmp 0x14004ec9c
mov rcx, rbp
call fcn.14006eb50
jmp 0x14004edf9
mov eax, edi
test edi, edi
jg 0x14004f263
jmp 0x14004f26b
mov eax, ebx
test ebx, ebx
jg 0x14004f442
jmp 0x14004f44a
lea rax, [rsp + 0x60]
mov qword [rsp + 0x20], rax
mov rcx, rbp
mov rdx, qword [rsp + 0x30]
mov r8d, dword [rsp + 0x2c]
mov r9, qword [rsp + 0x38]
call fcn.140050620
test rax, rax
je 0x1400500e1
mov rbx, rax
and rax, 0xffffffffffe00000
mov rcx, rbx
shr rcx, 9
and ecx, 0xfe0
lea rbp, [rax + rcx]
add rbp, 0x1000
movzx edx, word [rbp + 0x1e]
mov rcx, rdx
neg rcx
shl rdx, 5
mov rax, rbp
sub rax, rdx
cmp byte [rax + 0x1d], 0
jne 0x1400500f2
shl rcx, 5
mov rax, qword [rbp + rcx + 0x10]
mov ebp, dword [rax + 0x18]
mov edi, dword [rsp + 0x2c]
jmp 0x14004f2cc
lea rax, [rsp + 0x70]
mov qword [rsp + 0x20], rax
mov rcx, rbp
mov rdx, qword [rsp + 0x30]
mov r8d, r13d
mov r9, r12
call fcn.140050620
test rax, rax
je 0x140050100
mov r15, rax
and rax, 0xffffffffffe00000
mov rcx, r15
shr rcx, 9
and ecx, 0xfe0
lea rbp, [rax + rcx]
add rbp, 0x1000
movzx edx, word [rbp + 0x1e]
mov rcx, rdx
neg rcx
shl rdx, 5
mov rax, rbp
sub rax, rdx
cmp byte [rax + 0x1d], 0
jne 0x140050117
shl rcx, 5
mov rax, qword [rbp + rcx + 0x10]
mov edi, dword [rax + 0x18]
mov r13d, dword [rsp + 0x2c]
jmp 0x14004f655
mov ecx, ebp
call qword [sym.imp.KERNEL32.dll_SetLastError]
jmp 0x14004f3dd
lea rax, [rsp + 0x60]
mov qword [rsp + 0x20], rax
mov rcx, rbp
mov rdx, qword [rsp + 0x30]
mov r8d, r13d
mov r9, qword [rsp + 0x38]
call fcn.140050620
test rax, rax
je 0x140050132
mov rbx, rax
and rax, 0xffffffffffe00000
mov rcx, rbx
shr rcx, 9
and ecx, 0xfe0
lea rbp, [rax + rcx]
add rbp, 0x1000
movzx edx, word [rbp + 0x1e]
mov rcx, rdx
neg rcx
shl rdx, 5
mov rax, rbp
sub rax, rdx
cmp byte [rax + 0x1d], 0
jne 0x140050148
shl rcx, 5
mov rax, qword [rbp + rcx + 0x10]
mov edi, dword [rax + 0x18]
mov r13d, dword [rsp + 0x2c]
jmp 0x14004f792
mov eax, edi
test edi, edi
jg 0x14004f5e7
jmp 0x14004f5ef
mov eax, edi
test edi, edi
jg 0x14004f728
jmp 0x14004f730
lea rax, [rbp*4]
add rax, rbp
mov rcx, qword [rsp + 0x30]
lea rsi, [rcx + rax*8]
add rsi, 0x10
lea r14, [rcx + 8]
mov edi, 1
xor ebx, ebx
mov r15, qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
mov rcx, r14
call r15
test al, al
jne 0x14004f9fe
jmp 0x14004fcd3
pause
dec eax
jne 0x14004f9d9
add ebx, edi
add edi, edi
cmp edi, 0x40
mov eax, 0x40
cmovge edi, eax
cmp ebx, 0x3e8
jl 0x14004f9ca
mov rcx, r14
call sub.KERNEL32.dll_AcquireSRWLockExclusive
mov rax, qword [rsi]
mov r15, qword [rax]
test r15, r15
je 0x14004fec1
mov byte [rsp + 0x70], 0
lea rcx, [rbp*4]
add rcx, rbp
mov rdx, qword [rsp + 0x30]
mov edi, dword [rdx + rcx*8 + 0x28]
mov rcx, qword [r15]
test rcx, rcx
je 0x14004fa3e
mov rdx, rcx
not rdx
cmp qword [r15 + 8], rdx
jne 0x140050373
bswap rcx
mov qword [rax], rcx
inc word [rax + 0x18]
mov rcx, r14
jmp 0x14004eed2
je 0x14004ee2e
mov qword [rsp + 0x38], r12
mov r14d, r13d
mov rdi, qword [rsp + 0x30]
mov byte [rdi + 2], 0
mov rcx, rdi
call fcn.14006e580
mov rsi, rax
mov byte [rdi + 2], 1
inc qword [rax + 0x298]
cmp bp, 0x29
jae 0x14004ff4d
mov rdi, rbp
shl rdi, 4
lea rbx, [rsi + rdi]
cmp qword [rsi + rdi], 0
je 0x14004ff68
inc qword [rsi + 0x2a0]
mov r15, qword [rbx]
mov rax, qword [r15]
test rax, rax
je 0x14004fabf
mov rcx, rax
not rcx
cmp qword [r15 + 8], rcx
jne 0x140050373
dec byte [rsi + rdi + 8]
bswap rax
mov qword [rbx], rax
lea rax, [rsi + rdi]
add rax, 0xa
mov r13d, r14d
mov r12, qword [rsp + 0x38]
jmp 0x14004e99e
test r13b, 1
jne 0x14004f4c1
mov rcx, r12
call fcn.1400d8ac0
mov rcx, rbx
mov rdx, rbp
mov r8, r12
call fcn.1400a5830
mov edi, eax
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
test dil, dil
je 0x14004eaf9
test r13b, 1
je 0x14004efb9
mov r15, qword [rsp + 0x40]
mov rcx, r15
mov rdx, r15
mov r8, qword [rsp + 0x38]
mov r9, qword [rsp + 0xf0]
call fcn.1400dc3b0
jmp 0x14004edf9
lea rax, [r12 + 0xfff]
and rax, 0xfffffffffffff000
jmp 0x14004eb62
lea rcx, [rsp + 0x58]
mov rdx, qword [rsp + 0x40]
call fcn.1400dc410
test al, al
je 0x14004ea24
jmp 0x14004eb7e
mov rax, qword [rbp + 0x20]
jmp 0x14004ead7
mov rcx, rdi
shl rcx, 5
mov rdx, qword [r14 + rcx + 0x10]
cmp byte [rdx + 0x1c], 0
je 0x14004ed35
lea rdx, [r14 + rcx]
add rdx, 0x10
mov rbp, qword [0x14010cec0]
and ebp, 1
shl rbp, 0xe
add rbp, rax
mov rbx, qword [rsp + 0x40]
mov rcx, rbx
shr rcx, 4
shr rbx, 7
and ebx, 0x3ff8
mov eax, 1
shl rax, cl
lock or qword [rbx + rbp + 0x4000], rax
mov rax, qword [rdx]
mov eax, dword [rax + 0x18]
mov rcx, rax
lock xadd qword [0x14010ceb0], rcx
add rcx, rax
mov rax, qword [0x14010ceb8]
cmp rcx, rax
jbe 0x14004edf9
mov al, byte [0x14010ced0]
test al, 1
jne 0x14004edf9
lea rcx, [0x14010ce20]
mov edx, 1
call fcn.1400a5a20
jmp 0x14004edf9
je 0x14004eef4
mov r14, r12
mov rdi, qword [rsp + 0x30]
mov byte [rdi + 2], 0
mov rcx, rdi
call fcn.14006e580
mov rbp, rax
mov byte [rdi + 2], 1
inc qword [rax + 0x298]
cmp si, 0x29
jae 0x140050082
mov rdi, rsi
shl rdi, 4
lea rbx, [rdi + rbp]
cmp qword [rbp + rdi], 0
je 0x14005009d
inc qword [rbp + 0x2a0]
mov r15, qword [rbx]
mov rax, qword [r15]
test rax, rax
je 0x14004fc80
mov rcx, rax
not rcx
cmp qword [r15 + 8], rcx
jne 0x140050373
dec byte [rbp + rdi + 8]
bswap rax
mov qword [rbx], rax
lea rax, [rdi + rbp]
add rax, 0xa
mov r13d, dword [rsp + 0x2c]
mov r12, r14
jmp 0x14004ec7f
mov rdx, rbp
add rdx, rax
shr r8, 1
mov rcx, rbp
call fcn.14006e990
jmp 0x14004edeb
mov rcx, r15
xor edx, edx
mov r8, rdi
call fcn.14007c0b0
jmp 0x14004ec9c
mov qword [rbp + 0x20], r12
jmp 0x14004efb9
int3
mov eax, edi
test edi, edi
jg 0x14004f9d9
jmp 0x14004f9e1
xor r15d, r15d
movabs rdi, 0xaaaaaaaaaaaaaaaa
jmp 0x14004ef8e
movabs rdi, 0xaaaaaaaaaaaaaaaa
xor r15d, r15d
jmp 0x14004eecf
shl rcx, 5
mov rdi, qword [rbp + rcx + 0x20]
jmp 0x14004eecf
xor ebx, ebx
jmp 0x14004f2ef
lea rcx, [rsp + 0x70]
mov edx, r13d
mov r8, r12
mov r9, rsi
call fcn.1400dc380
test al, al
je 0x14004f1bb
mov rcx, qword [rsp + 0x70]
mov rdx, r12
mov r8, rsi
jmp 0x14004fdf4
mov esi, dword [0x140117fa0]
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
mov ecx, esi
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rsi, rax
test ebx, ebx
jne 0x140050125
cmp rsi, 1
jbe 0x140050156
inc qword [rsi + 0x298]
cmp r14w, 0x29
jae 0x14005017c
mov rdi, r14
shl rdi, 4
lea rbp, [rsi + rdi]
cmp qword [rsi + rdi], 0
je 0x140050235
inc qword [rsi + 0x2a0]
mov rbx, qword [rbp]
mov rax, qword [rbx]
test rax, rax
je 0x14004fdbc
mov rcx, rax
not rcx
cmp qword [rbx + 8], rcx
jne 0x140050373
dec byte [rsi + rdi + 8]
bswap rax
mov qword [rbp], rax
lea rax, [rsi + rdi]
add rax, 0xa
test rbx, rbx
je 0x14005018a
movzx ebp, word [rax]
mov edi, dword [rsp + 0x2c]
jmp 0x14004f2de
mov rcx, rbx
mov rdx, qword [rsp + 0x38]
mov r8, qword [rsp + 0xf0]
call fcn.1400dc370
jmp 0x14004f2fe
mov rcx, rdi
shl rcx, 5
mov rdx, qword [r14 + rcx + 0x10]
cmp byte [rdx + 0x1c], 0
je 0x14004f3a3
lea rdx, [r14 + rcx]
add rdx, 0x10
mov rbp, qword [0x14010cec0]
and ebp, 1
shl rbp, 0xe
add rbp, rax
mov rbx, qword [rsp + 0x40]
mov rcx, rbx
shr rcx, 4
shr rbx, 7
and ebx, 0x3ff8
mov eax, 1
shl rax, cl
lock or qword [rbx + rbp + 0x4000], rax
mov rax, qword [rdx]
mov eax, dword [rax + 0x18]
mov rcx, rax
lock xadd qword [0x14010ceb0], rcx
add rcx, rax
mov rax, qword [0x14010ceb8]
cmp rcx, rax
jbe 0x14004f4c1
mov al, byte [0x14010ced0]
test al, 1
jne 0x14004f4c1
lea rcx, [0x14010ce20]
mov edx, 1
call fcn.1400a5a20
jmp 0x14004f4c1
int3
lea rcx, [rsp + 0x70]
call fcn.1400468a0
jmp 0x14004f4c1
mov rcx, rbx
xor edx, edx
mov r8, rbp
call fcn.14007c0b0
jmp 0x14004f2ef
lea rax, [rsp + 0x70]
mov qword [rsp + 0x20], rax
mov rcx, rsi
mov rdx, qword [rsp + 0x30]
mov r8d, r13d
mov r9, r12
call fcn.140050620
test rax, rax
je 0x14005026d
mov r15, rax
and rax, 0xffffffffffe00000
mov rcx, r15
shr rcx, 9
and ecx, 0xfe0
lea rbp, [rax + rcx]
add rbp, 0x1000
movzx edx, word [rbp + 0x1e]
mov rcx, rdx
neg rcx
shl rdx, 5
mov rax, rbp
sub rax, rdx
cmp byte [rax + 0x1d], 0
jne 0x14005027f
shl rcx, 5
mov rax, qword [rbp + rcx + 0x10]
mov edi, dword [rax + 0x18]
jmp 0x14004fa48
mov rdx, rbx
add rdx, rax
shr r8, 1
mov rcx, rbx
call fcn.14006e990
jmp 0x14004f59a
inc qword [rsi + 0x2b8]
inc qword [rsi + 0x2a8]
mov r13d, r14d
mov r12, qword [rsp + 0x38]
jmp 0x14004ee2e
inc qword [rsi + 0x2b0]
inc qword [rsi + 0x2a8]
mov rcx, rsi
mov rdx, rbp
call fcn.14006e800
mov r15, qword [rbx]
test r15, r15
mov r13d, r14d
mov r12, qword [rsp + 0x38]
jne 0x14004faa7
jmp 0x14004ee2e
xor ebx, ebx
jmp 0x14004f7b5
lea rcx, [rsp + 0x70]
mov edx, r13d
mov r8, r12
mov r9, qword [rsp + 0xf0]
call fcn.1400dc380
test al, al
je 0x14004f683
mov rcx, qword [rsp + 0x70]
jmp 0x14005006d
mov esi, dword [0x140117fa0]
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
mov ecx, esi
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rsi, rax
test ebx, ebx
jne 0x140050260
cmp rsi, 1
jbe 0x14005028d
inc qword [rsi + 0x298]
cmp r15w, 0x29
jae 0x1400502b3
mov rdi, r15
shl rdi, 4
lea rbp, [rsi + rdi]
cmp qword [rsi + rdi], 0
je 0x140050378
inc qword [rsi + 0x2a0]
mov rbx, qword [rbp]
mov rax, qword [rbx]
test rax, rax
je 0x140050041
mov rcx, rax
not rcx
cmp qword [rbx + 8], rcx
jne 0x140050373
dec byte [rsi + rdi + 8]
bswap rax
mov qword [rbp], rax
lea rax, [rsi + rdi]
add rax, 0xa
test rbx, rbx
je 0x1400502c1
movzx edi, word [rax]
mov r13d, dword [rsp + 0x2c]
jmp 0x14004f7a4
mov rcx, rbx
mov rdx, r12
mov r8, qword [rsp + 0xf0]
call fcn.1400dc370
jmp 0x14004f7ca
inc qword [rbp + 0x2b8]
inc qword [rbp + 0x2a8]
mov r13d, dword [rsp + 0x2c]
mov r12, r14
jmp 0x14004eef4
inc qword [rbp + 0x2b0]
inc qword [rbp + 0x2a8]
mov rcx, rbp
mov rdx, rsi
call fcn.14006e800
mov r15, qword [rbx]
test r15, r15
mov r13d, dword [rsp + 0x2c]
mov r12, r14
jne 0x14004fc68
jmp 0x14004eef4
mov r8, rdi
mov rcx, rbx
xor edx, edx
call fcn.14007c0b0
jmp 0x14004f7b5
movabs rbp, 0xaaaaaaaaaaaaaaaa
xor ebx, ebx
jmp 0x14004f874
shl rcx, 5
mov rbp, qword [rbp + rcx + 0x20]
jmp 0x14004f874
xor r15d, r15d
mov r13d, dword [rsp + 0x2c]
movabs rdi, 0xaaaaaaaaaaaaaaaa
jmp 0x14004f655
shl rcx, 5
mov rdi, qword [rbp + rcx + 0x20]
jmp 0x14004f8ee
mov ecx, ebx
call qword [sym.imp.KERNEL32.dll_SetLastError]
jmp 0x14004fd67
xor ebx, ebx
mov r13d, dword [rsp + 0x2c]
movabs rdi, 0xaaaaaaaaaaaaaaaa
jmp 0x14004f792
shl rcx, 5
mov rdi, qword [rbp + rcx + 0x20]
jmp 0x14004f978
je 0x14005018a
mov rdi, qword [rsp + 0x30]
mov byte [rdi + 2], 0
mov rcx, rdi
call fcn.14006e580
mov rsi, rax
mov byte [rdi + 2], 1
inc qword [rax + 0x298]
jmp 0x14004fd78
inc qword [rsi + 0x2b8]
inc qword [rsi + 0x2a8]
lea rsi, [r14 + r14*4]
mov rax, qword [rsp + 0x30]
lea rbp, [rax + rsi*8]
add rbp, 0x10
lea r14, [rax + 8]
mov edi, 1
xor ebx, ebx
mov r12, qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
mov r13d, 0x40
mov rcx, r14
call r12
test al, al
jne 0x1400501e3
jmp 0x1400503a3
pause
dec eax
jne 0x1400501c2
add ebx, edi
add edi, edi
cmp edi, 0x40
cmovge edi, r13d
cmp ebx, 0x3e8
jl 0x1400501b3
mov rcx, r14
call sub.KERNEL32.dll_AcquireSRWLockExclusive
mov rax, qword [rbp]
mov rbx, qword [rax]
test rbx, rbx
je 0x1400503b2
mov byte [rsp + 0x60], 0
mov rcx, qword [rsp + 0x30]
mov ebp, dword [rcx + rsi*8 + 0x28]
mov rcx, qword [rbx]
test rcx, rcx
je 0x140050219
mov rdx, rcx
not rdx
cmp qword [rbx + 8], rdx
jne 0x140050373
bswap rcx
mov qword [rax], rcx
inc word [rax + 0x18]
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov edi, dword [rsp + 0x2c]
jmp 0x14004f2d5
inc qword [rsi + 0x2b0]
inc qword [rsi + 0x2a8]
mov rcx, rsi
mov rdx, r14
call fcn.14006e800
mov rbx, qword [rbp]
test rbx, rbx
jne 0x14004fda4
jmp 0x14005018a
mov ecx, ebx
call qword [sym.imp.KERNEL32.dll_SetLastError]
jmp 0x14004ffec
movabs rdi, 0xaaaaaaaaaaaaaaaa
xor r15d, r15d
jmp 0x14004fa48
shl rcx, 5
mov rdi, qword [rbp + rcx + 0x20]
jmp 0x14004fa48
je 0x1400502c1
mov rdi, qword [rsp + 0x30]
mov byte [rdi + 2], 0
mov rcx, rdi
call fcn.14006e580
mov rsi, rax
mov byte [rdi + 2], 1
inc qword [rax + 0x298]
jmp 0x14004fffd
inc qword [rsi + 0x2b8]
inc qword [rsi + 0x2a8]
lea rsi, [r15 + r15*4]
mov rax, qword [rsp + 0x30]
lea rbp, [rax + rsi*8]
add rbp, 0x10
lea r15, [rax + 8]
mov edi, 1
xor ebx, ebx
mov r12, qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
mov r13d, 0x40
mov rcx, r15
call r12
test al, al
jne 0x14005031a
jmp 0x14005042c
pause
dec eax
jne 0x1400502f9
add ebx, edi
add edi, edi
cmp edi, 0x40
cmovge edi, r13d
cmp ebx, 0x3e8
jl 0x1400502ea
mov rcx, r15
call sub.KERNEL32.dll_AcquireSRWLockExclusive
mov rax, qword [rbp]
mov rbx, qword [rax]
test rbx, rbx
je 0x14005043b
mov byte [rsp + 0x60], 0
mov rcx, qword [rsp + 0x30]
mov ecx, dword [rcx + rsi*8 + 0x28]
mov qword [rsp + 0x50], rcx
mov rcx, qword [rbx]
test rcx, rcx
je 0x140050351
mov rdx, rcx
not rdx
cmp qword [rbx + 8], rdx
jne 0x140050373
bswap rcx
mov qword [rax], rcx
inc word [rax + 0x18]
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov r13d, dword [rsp + 0x2c]
mov rdi, qword [rsp + 0x50]
jmp 0x14004f79b
call 0x1400a5820
inc qword [rsi + 0x2b0]
inc qword [rsi + 0x2a8]
mov rcx, rsi
mov rdx, r15
call fcn.14006e800
mov rbx, qword [rbp]
test rbx, rbx
jne 0x140050029
jmp 0x1400502c1
mov eax, edi
test edi, edi
jg 0x1400501c2
jmp 0x1400501ca
lea rax, [rsp + 0x60]
mov qword [rsp + 0x20], rax
mov rcx, rbp
mov rdx, qword [rsp + 0x30]
mov r8d, dword [rsp + 0x2c]
mov r9, qword [rsp + 0x38]
call fcn.140050620
test rax, rax
je 0x1400504aa
mov rbx, rax
and rax, 0xffffffffffe00000
mov rcx, rbx
shr rcx, 9
and ecx, 0xfe0
lea rbp, [rax + rcx]
add rbp, 0x1000
movzx edx, word [rbp + 0x1e]
mov rcx, rdx
neg rcx
shl rdx, 5
mov rax, rbp
sub rax, rdx
cmp byte [rax + 0x1d], 0
jne 0x1400504c2
shl rcx, 5
mov rax, qword [rbp + rcx + 0x10]
mov ebp, dword [rax + 0x18]
jmp 0x140050223
mov eax, edi
test edi, edi
jg 0x1400502f9
jmp 0x140050301
lea rax, [rsp + 0x60]
mov qword [rsp + 0x20], rax
mov rcx, rbp
mov rdx, qword [rsp + 0x30]
mov r8d, dword [rsp + 0x2c]
mov r9, qword [rsp + 0x38]
call fcn.140050620
test rax, rax
je 0x1400504bb
mov rbx, rax
and rax, 0xffffffffffe00000
mov rcx, rbx
shr rcx, 9
and ecx, 0xfe0
lea rbp, [rax + rcx]
add rbp, 0x1000
movzx edx, word [rbp + 0x1e]
mov rcx, rdx
neg rcx
shl rdx, 5
mov rax, rbp
sub rax, rdx
cmp byte [rax + 0x1d], 0
jne 0x1400504d0
shl rcx, 5
mov rax, qword [rbp + rcx + 0x10]
mov eax, dword [rax + 0x18]
jmp 0x1400504d9
movabs rbp, 0xaaaaaaaaaaaaaaaa
xor ebx, ebx
jmp 0x140050223
xor ebx, ebx
jmp 0x14005035b
shl rcx, 5
mov rbp, qword [rbp + rcx + 0x20]
jmp 0x140050223
shl rcx, 5
mov rax, qword [rbp + rcx + 0x20]
mov qword [rsp + 0x50], rax
jmp 0x14005035b