Function at 0x1400d85b0
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 r14, r9
mov r12d, edx
mov qword [rsp + 0x38], rcx
mov rax, qword [0x1401ff028]
xor rax, rsp
mov qword [rsp + 0x80], rax
test r8, r8
jne 0x1400d8757
movabs rax, 0xaaaaaaaaaaaaaaaa
mov edx, 0x40
mov ecx, 0x40
test r12b, 4
je 0x1400d8ee9
test r14, r14
je 0x1400d8614
bsr rcx, r14
xor rcx, 0x3f
sub rdx, rcx
lea rcx, [0x1401e0fb0]
mov cl, byte [rdx + rcx]
mov rbp, r14
shr rbp, cl
and ebp, 7
lea rcx, [0x1401e1000]
mov rcx, qword [rcx + rdx*8]
and rcx, r14
lea rdx, [rdx*8]
add rdx, rbp
cmp rcx, 1
sbb rdx, 0xffffffffffffffff
lea rcx, [0x1401e0790]
movzx esi, word [rcx + rdx*2 + 0x400]
mov byte [rsp + 0x60], 0
mov qword [rsp + 0x70], rax
mov rdi, qword [rsp + 0x38]
cmp byte [rdi], 2
je 0x1400d9575
cmp byte [rdi + 2], 0
je 0x1400d950f
mov ebp, dword [0x14020a3fc]
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 0x1400d9036
cmp rbp, 2
jb 0x1400d958d
add qword [rbp + 0x5a0], 1
cmp si, 0x29
jae 0x1400d8c17
mov rbx, rsi
shl rbx, 4
mov rdi, rbp
add rdi, rbx
mov r13, qword [rbp + rbx]
test r13, r13
je 0x1400d8cf1
add qword [rbp + 0x5a8], 1
mov rax, qword [r13]
test rax, rax
je 0x1400d8b59
mov rcx, rax
not rcx
cmp qword [r13 + 8], rcx
jne 0x1400d9c77
bswap rax
prefetcht0 byte [rax]
add byte [rbp + rbx + 8], 0xff
mov qword [rdi], rax
movzx eax, word [rbp + rbx + 0xa]
mov qword [rsp + 0x70], rax
sub qword [rbp + 0x590], rax
test r13, r13
je 0x1400d8c25
mov rdi, qword [rsp + 0x70]
test r12b, 2
jne 0x1400d9019
mov rcx, qword [rsp + 0x80]
xor rcx, rsp
call fcn.140106510
mov rax, r13
add rsp, 0x88
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov qword [rsp + 0x40], r8
test r14, r14
je 0x1400d907b
mov dword [rsp + 0x34], r12d
cmp r14, 0x7fe00001
jae 0x1400d95aa
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0x50], rax
mov rax, qword [rsp + 0x40]
mov rcx, rax
and rcx, 0xffffffffffe00000
shr rax, 9
mov qword [rsp + 0x58], rax
and eax, 0xfe0
lea rbx, [rcx + rax]
add rbx, 0x1000
mov qword [rsp + 0x48], rcx
movzx eax, byte [rcx + rax + 0x101e]
mov r13, rax
neg r13
shl rax, 5
mov r15, rbx
sub r15, rax
mov rax, r15
and rax, 0xfffffffffffff000
mov rsi, qword [rax]
lea rbp, [rsi + 8]
mov edi, 1
xor r12d, r12d
mov rdx, qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
mov rcx, rbp
call rdx
test al, al
jne 0x1400d8827
jmp 0x1400d9216
pause
dec eax
jne 0x1400d87f8
add r12d, edi
add edi, edi
cmp edi, 0x40
mov eax, 0x40
cmovge edi, eax
cmp r12d, 0x3e8
mov rdx, qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
jl 0x1400d87ea
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
shl r13, 5
cmp byte [rbx + r13 + 0x1d], 0
jne 0x1400d95e4
mov rax, qword [rbx + r13 + 0x10]
mov eax, dword [rax + 0x18]
mov r12d, dword [rsp + 0x34]
mov qword [rsp + 0x50], rax
mov rax, qword [rbx + r13 + 0x10]
cmp byte [rax + 0x1c], 0
je 0x1400d95bd
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
bsr rax, r14
xor rax, 0xffffffffffffffc0
lea rcx, [0x1401e0fb0]
mov cl, byte [rax + rcx + 0x41]
mov rbp, r14
shr rbp, cl
and ebp, 7
lea rdx, [0x1401e1000]
mov rdx, qword [rdx + rax*8 + 0x208]
and rdx, r14
lea rdi, [rax*8 + 0x208]
add rdi, rbp
cmp rdx, 1
sbb rdi, 0xffffffffffffffff
lea rbp, [0x1401e0790]
movzx edi, word [rbp + rdi*2 + 0x400]
lea rdi, [rdi + rdi*4]
cmp byte [rsi + rdi*8 + 0x2c], 0
je 0x1400d95ed
mov edi, dword [rsi + rdi*8 + 0x28]
movzx esi, byte [rbx + 0x1e]
shl rsi, 5
neg rsi
mov rsi, qword [rbx + rsi + 0x10]
mov esi, dword [rsi + 0x18]
cmp rdi, rsi
je 0x1400d8cd6
mov rbx, r14
shr rbx, cl
and ebx, 7
lea rax, [rbx + rax*8]
add rax, 0x208
cmp rdx, 1
sbb rax, 0xffffffffffffffff
movzx r15d, word [rbp + rax*2 + 0x400]
test r12b, 4
je 0x1400d92be
mov byte [rsp + 0x60], 0
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0x70], rax
mov rsi, qword [rsp + 0x38]
cmp byte [rsi], 2
je 0x1400d9733
cmp byte [rsi + 2], 0
je 0x1400d9c12
mov esi, dword [0x14020a3fc]
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 0x1400d9225
cmp rsi, 2
jb 0x1400d974b
add qword [rsi + 0x5a0], 1
cmp r15w, 0x29
jae 0x1400d8b60
mov rbx, r15
shl rbx, 4
mov rdi, rsi
add rdi, rbx
mov r13, qword [rsi + rbx]
test r13, r13
je 0x1400d904a
inc qword [rsi + 0x5a8]
mov rax, qword [r13]
test rax, rax
je 0x1400d8de4
mov rcx, rax
not rcx
cmp qword [r13 + 8], rcx
jne 0x1400d9c77
bswap rax
prefetcht0 byte [rax]
dec byte [rsi + rbx + 8]
mov qword [rdi], rax
movzx eax, word [rsi + rbx + 0xa]
mov qword [rsp + 0x70], rax
sub qword [rsi + 0x590], rax
test r13, r13
je 0x1400d8b6e
mov rsi, qword [rsp + 0x70]
test r12b, 2
jne 0x1400d960c
test r13, r13
je 0x1400d9600
mov rax, qword [rsp + 0x50]
cmp rax, r14
ja 0x1400d8a02
mov r14, rax
mov rcx, r13
mov rsi, qword [rsp + 0x40]
mov rdx, rsi
mov r8, r14
call fcn.140108990
prefetcht0 byte [rsi]
mov rcx, qword [rsp + 0x58]
and ecx, 0xfe0
mov rax, qword [rsp + 0x48]
lea rdi, [rax + rcx]
add rdi, 0x1000
movzx eax, byte [rax + rcx + 0x101e]
mov r12, rax
neg r12
shl rax, 5
mov qword [rsp + 0x38], rdi
sub rdi, rax
prefetcht0 byte [rdi]
mov rax, rdi
and rax, 0xfffffffffffff000
mov rbp, qword [rax]
cmp byte [rbp], 2
je 0x1400d962a
cmp byte [rbp + 2], 0
je 0x1400d8d22
mov rax, r12
shl rax, 5
mov rcx, qword [rsp + 0x38]
mov r14, qword [rcx + rax + 0x10]
lea r15, [rbp + 0x10]
lea rax, [rbp + 0x1410]
cmp rax, r14
setae al
cmp r15, r14
ja 0x1400d9765
test al, al
je 0x1400d8d22
mov esi, dword [0x14020a3fc]
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 0x1400d9232
cmp rsi, 2
jb 0x1400d8d22
sub r14, r15
sar r14, 3
movabs rax, 0xcccccccccccccccd
imul rax, r14
add qword [rsi + 0x5c8], 1
cmp rax, 0x28
ja 0x1400d8d1b
shl rax, 4
mov rcx, qword [rsi + rax]
bswap rcx
mov rdx, qword [rsp + 0x40]
mov qword [rdx], rcx
not rcx
mov qword [rdx + 8], rcx
mov qword [rsi + rax], rdx
mov dl, byte [rsi + rax + 8]
add dl, 1
mov byte [rsi + rax + 8], dl
movzx ecx, word [rsi + rax + 0xa]
add qword [rsi + 0x590], rcx
add qword [rsi + 0x5d0], 1
mov cl, byte [rsi + rax + 9]
cmp dl, cl
ja 0x1400d976c
mov al, byte [rsi + 0x598]
test al, 1
je 0x1400d8730
mov rcx, rsi
call fcn.1400d03a0
jmp 0x1400d8730
xor eax, eax
jmp 0x1400d86ff
inc qword [rsi + 0x5c0]
inc qword [rsi + 0x5b0]
lea rbx, [r15 + r15*4]
mov rax, qword [rsp + 0x38]
lea rsi, [rax + rbx*8]
add rsi, 0x10
lea r15, [rax + 8]
mov edi, 1
xor ebp, ebp
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
jne 0x1400d8bc2
jmp 0x1400d9391
pause
dec eax
jne 0x1400d8b9c
add ebp, edi
add edi, edi
cmp edi, 0x40
mov eax, 0x40
cmovge edi, eax
cmp ebp, 0x3e8
jl 0x1400d8b8a
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
mov rax, qword [rsi]
mov r13, qword [rax]
test r13, r13
je 0x1400d8e6a
mov byte [rsp + 0x60], 0
mov rcx, qword [rsp + 0x38]
mov esi, dword [rcx + rbx*8 + 0x28]
mov rcx, qword [r13]
test rcx, rcx
je 0x1400d9074
mov rdx, rcx
not rdx
cmp qword [r13 + 8], rdx
jne 0x1400d9c77
bswap rcx
prefetcht0 byte [rcx]
mov qword [rax], rcx
inc word [rax + 0x18]
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
jmp 0x1400d89e2
inc qword [rbp + 0x5c0]
inc qword [rbp + 0x5b0]
lea rbx, [rsi + rsi*4]
mov rax, qword [rsp + 0x38]
lea rbp, [rax + rbx*8]
add rbp, 0x10
lea rsi, [rax + 8]
mov edi, 1
xor r15d, r15d
mov r13, qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
mov rcx, rsi
call r13
test al, al
jne 0x1400d8c80
jmp 0x1400d93a0
pause
dec eax
jne 0x1400d8c58
add r15d, edi
add edi, edi
cmp edi, 0x40
mov eax, 0x40
cmovge edi, eax
cmp r15d, 0x3e8
jl 0x1400d8c49
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
mov rax, qword [rbp]
mov r13, qword [rax]
test r13, r13
je 0x1400d8deb
mov byte [rsp + 0x60], 0
mov rcx, qword [rsp + 0x38]
mov edi, dword [rcx + rbx*8 + 0x28]
mov rcx, qword [r13]
test rcx, rcx
je 0x1400d9043
mov rdx, rcx
not rdx
cmp qword [r13 + 8], rdx
jne 0x1400d9c77
bswap rcx
prefetcht0 byte [rcx]
mov qword [rax], rcx
inc word [rax + 0x18]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
jmp 0x1400d8726
lea rax, [rbx + r13]
add rax, 0x1d
cmp byte [rax], 0
jne 0x1400d9786
mov r13, qword [rsp + 0x40]
jmp 0x1400d8730
inc qword [rbp + 0x5b8]
inc qword [rbp + 0x5b0]
mov rcx, rbp
mov rdx, rsi
call fcn.1400c8f30
mov r13, qword [rdi]
test r13, r13
jne 0x1400d86dc
jmp 0x1400d8c25
inc qword [rsi + 0x5d8]
add rbp, 8
xorps xmm0, xmm0
movaps xmmword [rsp + 0x70], xmm0
mov esi, 1
xor ebx, ebx
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
jne 0x1400d8d6d
jmp 0x1400d93af
pause
dec eax
jne 0x1400d8d47
add ebx, esi
add esi, esi
cmp esi, 0x40
mov eax, 0x40
cmovge esi, eax
cmp ebx, 0x3e8
jl 0x1400d8d35
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
mov rax, qword [rdi]
mov rcx, qword [rsp + 0x40]
cmp rax, rcx
je 0x1400d978f
bswap rax
mov qword [rcx], rax
not rax
mov qword [rcx + 8], rax
mov qword [rdi], rcx
shl r12, 5
mov rcx, qword [rsp + 0x38]
movzx eax, word [rcx + r12 + 0x18]
dec eax
mov word [rcx + r12 + 0x18], ax
test ax, ax
jle 0x1400d9204
xorps xmm0, xmm0
movaps xmmword [rsp + 0x60], xmm0
movaps xmm0, xmmword [rsp + 0x60]
movaps xmmword [rsp + 0x70], xmm0
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
cmp qword [rsp + 0x70], 0
je 0x1400d8730
lea rcx, [rsp + 0x70]
call fcn.14000bb50
jmp 0x1400d8730
xor eax, eax
jmp 0x1400d89bc
lea rax, [rsp + 0x60]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], 0x4000
mov rcx, rbp
mov rdx, qword [rsp + 0x38]
mov r8d, r12d
mov r9, r14
call fcn.1400c9120
test rax, rax
je 0x1400d9dbc
mov r13, rax
and rax, 0xffffffffffe00000
mov rcx, r13
shr rcx, 9
and ecx, 0xfe0
lea rbp, [rax + rcx]
add rbp, 0x1000
movzx edx, byte [rbp + 0x1e]
mov rcx, rdx
neg rcx
shl rdx, 5
mov rax, rbp
sub rax, rdx
cmp byte [rax + 0x1d], 0
jne 0x1400d9792
shl rcx, 5
mov rax, qword [rbp + rcx + 0x10]
mov edi, dword [rax + 0x18]
jmp 0x1400d8cc8
lea rax, [rsp + 0x60]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], 0x4000
mov rcx, rsi
mov rdx, qword [rsp + 0x38]
mov r8d, r12d
mov r9, r14
call fcn.1400c9120
test rax, rax
je 0x1400d97a0
mov r13, rax
and rax, 0xffffffffffe00000
mov rcx, r13
shr rcx, 9
and ecx, 0xfe0
lea rbp, [rax + rcx]
add rbp, 0x1000
movzx edx, byte [rbp + 0x1e]
mov rcx, rdx
neg rcx
shl rdx, 5
mov rax, rbp
sub rax, rdx
cmp byte [rax + 0x1d], 0
jne 0x1400d92b0
shl rcx, 5
mov rax, qword [rbp + rcx + 0x10]
mov esi, dword [rax + 0x18]
jmp 0x1400d8c09
test r14, r14
je 0x1400d8ef6
bsr rcx, r14
xor rcx, 0x3f
sub rdx, rcx
lea rcx, [0x1401e0fb0]
mov cl, byte [rdx + rcx]
mov rbp, r14
shr rbp, cl
and ebp, 7
lea rcx, [0x1401e1000]
mov rcx, qword [rcx + rdx*8]
and rcx, r14
lea rdx, [rdx*8]
add rdx, rbp
cmp rcx, 1
sbb rdx, 0xffffffffffffffff
lea rcx, [0x1401e0790]
movzx r15d, word [rcx + rdx*2 + 0x400]
mov byte [rsp + 0x60], 0
mov qword [rsp + 0x70], rax
mov rsi, qword [rsp + 0x38]
cmp byte [rsi], 2
je 0x1400d97b1
mov dword [rsp + 0x34], r12d
cmp byte [rsi + 2], 0
jne 0x1400d97c9
lea rax, [r15 + r15*4]
lea rbp, [rsi + rax*8]
add rbp, 0x10
add rsi, 8
mov ebx, 1
xor edi, edi
mov r12, qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
mov rcx, rsi
call r12
test al, al
jne 0x1400d8fb7
jmp 0x1400d944a
pause
dec eax
jne 0x1400d8f91
add edi, ebx
add ebx, ebx
cmp ebx, 0x40
mov eax, 0x40
cmovge ebx, eax
cmp edi, 0x3e8
jl 0x1400d8f82
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
mov rax, qword [rbp]
mov r13, qword [rax]
test r13, r13
je 0x1400d93c5
mov byte [rsp + 0x60], 0
lea rcx, [r15 + r15*4]
mov rdx, qword [rsp + 0x38]
mov edi, dword [rdx + rcx*8 + 0x28]
mov rcx, qword [r13]
test rcx, rcx
mov ebx, dword [rsp + 0x34]
je 0x1400d93be
mov rdx, rcx
not rdx
cmp qword [r13 + 8], rdx
jne 0x1400d9c77
bswap rcx
prefetcht0 byte [rcx]
mov qword [rax], rcx
inc word [rax + 0x18]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
test bl, 2
je 0x1400d8730
cmp byte [rsp + 0x60], 0
jne 0x1400d8730
mov rcx, r13
xor edx, edx
mov r8, rdi
call fcn.140108da0
jmp 0x1400d8730
mov ecx, ebx
call qword [sym.imp.KERNEL32.dll_SetLastError]
jmp 0x1400d869d
xor ecx, ecx
jmp 0x1400d8cc1
inc qword [rsi + 0x5b8]
inc qword [rsi + 0x5b0]
mov rcx, rsi
mov rdx, r15
call fcn.1400c8f30
mov r13, qword [rdi]
test r13, r13
jne 0x1400d8999
jmp 0x1400d8b6e
xor ecx, ecx
jmp 0x1400d8c02
mov rax, qword [rsp + 0x40]
prefetcht0 byte [rax]
mov rsi, rax
and rsi, 0xffffffffffe00000
shr rax, 9
and eax, 0xfe0
lea r15, [rsi + rax]
add r15, 0x1000
movzx eax, byte [r15 + 0x1e]
mov r13, rax
neg r13
shl rax, 5
mov r12, r15
sub r12, rax
prefetcht0 byte [r12]
mov rax, r12
and rax, 0xfffffffffffff000
mov r14, qword [rax]
cmp byte [r14], 2
je 0x1400d9860
cmp byte [r14 + 2], 0
je 0x1400d914d
mov rax, r13
shl rax, 5
mov rdi, qword [r15 + rax + 0x10]
lea rbx, [r14 + 0x10]
cmp rbx, rdi
ja 0x1400d914d
lea rax, [r14 + 0x1410]
cmp rax, rdi
jb 0x1400d914d
mov esi, dword [0x14020a3fc]
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebp, eax
mov ecx, esi
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rsi, rax
test ebp, ebp
jne 0x1400d9459
cmp rsi, 2
jb 0x1400d914d
sub rdi, rbx
sar rdi, 3
movabs rax, 0xcccccccccccccccd
imul rax, rdi
inc qword [rsi + 0x5c8]
cmp rax, 0x28
jbe 0x1400d924e
inc qword [rsi + 0x5d8]
add r14, 8
xorps xmm0, xmm0
movaps xmmword [rsp + 0x70], xmm0
mov esi, 1
xor ebp, ebp
mov rdi, qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
mov rcx, r14
call rdi
test al, al
jne 0x1400d919b
jmp 0x1400d9466
pause
dec eax
jne 0x1400d9175
add ebp, esi
add esi, esi
cmp esi, 0x40
mov eax, 0x40
cmovge esi, eax
cmp ebp, 0x3e8
jl 0x1400d9167
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
mov rax, qword [r12]
mov rcx, qword [rsp + 0x40]
cmp rax, rcx
je 0x1400d995b
bswap rax
mov qword [rcx], rax
not rax
mov qword [rcx + 8], rax
mov qword [r12], rcx
shl r13, 5
movzx eax, word [r15 + r13 + 0x18]
dec eax
mov word [r15 + r13 + 0x18], ax
test ax, ax
jle 0x1400d923f
xorps xmm0, xmm0
movaps xmmword [rsp + 0x60], xmm0
movaps xmm0, xmmword [rsp + 0x60]
movaps xmmword [rsp + 0x70], xmm0
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
cmp qword [rsp + 0x70], 0
jne 0x1400d995e
xor r13d, r13d
jmp 0x1400d8730
lea rdx, [rsp + 0x60]
mov rcx, rdi
call fcn.1400d00a0
jmp 0x1400d8db6
mov eax, edi
test edi, edi
jg 0x1400d87f8
jmp 0x1400d8801
mov ecx, ebx
call qword [sym.imp.KERNEL32.dll_SetLastError]
jmp 0x1400d895b
mov ecx, ebx
call qword [sym.imp.KERNEL32.dll_SetLastError]
jmp 0x1400d8ac4
lea rdx, [rsp + 0x60]
mov rcx, r12
call fcn.1400d00a0
jmp 0x1400d91dd
shl rax, 4
mov rcx, qword [rsi + rax]
bswap rcx
mov rdx, qword [rsp + 0x40]
mov qword [rdx], rcx
not rcx
mov qword [rdx + 8], rcx
mov qword [rsi + rax], rdx
mov dl, byte [rsi + rax + 8]
inc dl
mov byte [rsi + rax + 8], dl
movzx ecx, word [rsi + rax + 0xa]
add qword [rsi + 0x590], rcx
inc qword [rsi + 0x5d0]
mov cl, byte [rsi + rax + 9]
cmp dl, cl
ja 0x1400d99f8
mov al, byte [rsi + 0x598]
test al, 1
je 0x1400d91fc
mov rcx, rsi
call fcn.1400d03a0
jmp 0x1400d91fc
shl rcx, 5
mov rsi, qword [rbp + rcx + 0x20]
jmp 0x1400d8c09
mov byte [rsp + 0x60], 0
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0x70], rax
mov rdi, qword [rsp + 0x38]
cmp byte [rdi], 2
je 0x1400d9a12
cmp byte [rdi + 2], 0
jne 0x1400d9a2a
lea rax, [r15 + r15*4]
lea rsi, [rdi + rax*8]
add rsi, 0x10
lea rbp, [rdi + 8]
mov edi, 1
xor ebx, ebx
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
jne 0x1400d933e
jmp 0x1400d9500
pause
dec eax
jne 0x1400d9313
add ebx, edi
add edi, edi
cmp edi, 0x40
mov eax, 0x40
cmovge edi, eax
cmp ebx, 0x3e8
mov r12d, dword [rsp + 0x34]
jl 0x1400d9301
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
mov rax, qword [rsi]
mov r13, qword [rax]
test r13, r13
je 0x1400d947c
mov byte [rsp + 0x60], 0
lea rcx, [r15 + r15*4]
mov rdx, qword [rsp + 0x38]
mov esi, dword [rdx + rcx*8 + 0x28]
mov rcx, qword [r13]
test rcx, rcx
je 0x1400d9475
mov rdx, rcx
not rdx
cmp qword [r13 + 8], rdx
jne 0x1400d9c77
bswap rcx
prefetcht0 byte [rcx]
mov qword [rax], rcx
inc word [rax + 0x18]
mov rcx, rbp
jmp 0x1400d8c0c
mov eax, edi
test edi, edi
jg 0x1400d8b9c
jmp 0x1400d8ba4
mov eax, edi
test edi, edi
jg 0x1400d8c58
jmp 0x1400d8c61
mov eax, esi
test esi, esi
jg 0x1400d8d47
jmp 0x1400d8d4f
xor ecx, ecx
jmp 0x1400d9000
lea rax, [rsp + 0x60]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], 0x4000
mov rcx, rbp
mov rdx, qword [rsp + 0x38]
mov r8d, dword [rsp + 0x34]
mov r9, r14
call fcn.1400c9120
test rax, rax
je 0x1400d9dbc
mov r13, rax
and rax, 0xffffffffffe00000
mov rcx, r13
shr rcx, 9
and ecx, 0xfe0
lea rbp, [rax + rcx]
add rbp, 0x1000
movzx edx, byte [rbp + 0x1e]
mov rcx, rdx
neg rcx
shl rdx, 5
mov rax, rbp
sub rax, rdx
cmp byte [rax + 0x1d], 0
jne 0x1400d9ad5
shl rcx, 5
mov rax, qword [rbp + rcx + 0x10]
mov edi, dword [rax + 0x18]
mov ebx, dword [rsp + 0x34]
jmp 0x1400d9007
mov eax, ebx
test ebx, ebx
jg 0x1400d8f91
jmp 0x1400d8f99
mov ecx, ebp
call qword [sym.imp.KERNEL32.dll_SetLastError]
jmp 0x1400d911a
mov eax, esi
test esi, esi
jg 0x1400d9175
jmp 0x1400d917d
xor ecx, ecx
jmp 0x1400d9382
lea rax, [rsp + 0x60]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], 0x4000
mov rcx, rsi
mov rdx, qword [rsp + 0x38]
mov r8d, r12d
mov r9, r14
call fcn.1400c9120
test rax, rax
je 0x1400d9ae3
mov r13, rax
and rax, 0xffffffffffe00000
mov rcx, r13
shr rcx, 9
and ecx, 0xfe0
lea rbx, [rax + rcx]
add rbx, 0x1000
movzx edx, byte [rbx + 0x1e]
mov rcx, rdx
neg rcx
shl rdx, 5
mov rax, rbx
sub rax, rdx
cmp byte [rax + 0x1d], 0
jne 0x1400d9af4
shl rcx, 5
mov rax, qword [rbx + rcx + 0x10]
mov esi, dword [rax + 0x18]
mov r12d, dword [rsp + 0x34]
jmp 0x1400d9389
mov eax, edi
test edi, edi
jg 0x1400d9313
jmp 0x1400d931b
lea rdi, [rsi + rsi*4]
mov rbx, qword [rsp + 0x38]
lea r15, [rbx + 8]
mov rcx, r15
call fcn.1400ffab0
mov rax, qword [rbx + rdi*8 + 0x10]
mov r13, qword [rax]
test r13, r13
je 0x1400d9974
mov byte [rsp + 0x60], 0
lea rcx, [rsi + rsi*4]
mov rdx, qword [rsp + 0x38]
mov edi, dword [rdx + rcx*8 + 0x28]
mov rcx, qword [r13]
test rcx, rcx
je 0x1400d95a6
mov rdx, rcx
not rdx
cmp qword [r13 + 8], rdx
jne 0x1400d9c77
bswap rcx
prefetcht0 byte [rcx]
mov qword [rax], rcx
inc word [rax + 0x18]
mov rcx, r15
jmp 0x1400d8ccb
mov al, byte [0x1402021f8]
cmp al, 2
jne 0x1400d8672
call fcn.140160e90
jmp 0x1400d8672
lea r8, [rsp + 0x70]
mov rcx, qword [rsp + 0x38]
mov edx, esi
call fcn.140018750
mov r13, rax
jmp 0x1400d8718
xor ecx, ecx
jmp 0x1400d9566
test byte [rsp + 0x34], 1
jne 0x1400d91fc
mov rcx, r14
call fcn.140161e30
mov rcx, rsi
mov rdx, r15
mov r8, r14
call fcn.140172ef0
mov edi, eax
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
test dil, dil
je 0x1400d8861
jmp 0x1400d8ce7
mov rax, qword [r15 + 0x20]
jmp 0x1400d883f
lea rdi, [r14 + 0xfff]
and rdi, 0xfffffffffffff000
jmp 0x1400d88c4
test r12b, 1
jne 0x1400d91fc
jmp 0x1400d95b5
cmp byte [rsp + 0x60], 0
jne 0x1400d9620
mov rcx, r13
xor edx, edx
mov r8, rsi
call fcn.140108da0
mov r12d, dword [rsp + 0x34]
jmp 0x1400d89ec
mov al, byte [0x1402021f8]
cmp al, 2
je 0x1400d9abe
mov rax, r12
shl rax, 5
mov rcx, qword [rsp + 0x38]
mov rcx, qword [rcx + rax + 0x10]
lea rdx, [rbp + 0x10]
cmp rdx, rcx
ja 0x1400d8a66
lea rdx, [rbp + 0x1410]
cmp rdx, rcx
jb 0x1400d8a66
mov edx, dword [rcx + 0x18]
mov rcx, qword [rsp + 0x38]
cmp byte [rcx + rax + 0x1d], 0
mov r8, rdx
jne 0x1400d9ac8
mov rax, qword [0x1402021d0]
and eax, 1
shl rax, 0xe
mov rcx, qword [rsp + 0x48]
lea rsi, [rax + rcx]
lea rbp, [rax + rcx]
add rbp, 0x4000
mov rbx, qword [rsp + 0x40]
mov rcx, rbx
shr rcx, 4
shr ebx, 0xa
and ebx, 0x7ff
mov edi, 1
shl rdi, cl
mov rax, qword [rsi + rbx*8 + 0x4000]
mov rcx, rax
or rcx, rdi
lock cmpxchg qword [rbp + rbx*8], rcx
jne 0x1400d96c3
test rax, rdi
jne 0x1400d9ab9
mov rsi, rdx
lock xadd qword [0x1402021c0], rsi
add rsi, rdx
mov rdi, qword [0x1402021c8]
cmp byte [0x1402021f9], 1
jne 0x1400d9706
mov rcx, qword [rsp + 0x40]
xor edx, edx
call fcn.140108da0
cmp rsi, rdi
jbe 0x1400d8730
mov al, byte [0x1402021f8]
test al, al
jne 0x1400d8730
lea rcx, [0x1402021c0]
mov edx, 1
call fcn.140160db0
jmp 0x1400d8730
mov al, byte [0x1402021f8]
cmp al, 2
jne 0x1400d8930
call fcn.140160e90
jmp 0x1400d8930
lea r8, [rsp + 0x70]
mov rcx, qword [rsp + 0x38]
mov edx, r15d
call fcn.140018750
mov r13, rax
jmp 0x1400d89d4
xor eax, eax
jmp 0x1400d8a9b
mov rdx, rsi
add rdx, rax
movzx r8d, cl
shr r8, 1
mov rcx, rsi
call fcn.1400cfe10
jmp 0x1400d8b3e
mov qword [r15 + 0x20], r14
jmp 0x1400d8ce7
int3
shl rcx, 5
mov rdi, qword [rbp + rcx + 0x20]
jmp 0x1400d8cc8
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
xor r13d, r13d
jmp 0x1400d89ec
mov al, byte [0x1402021f8]
cmp al, 2
jne 0x1400d8f55
call fcn.140160e90
jmp 0x1400d8f55
call fcn.140100230
cmp rax, 2
jb 0x1400d9b02
mov rsi, rax
inc qword [rax + 0x5a0]
cmp r15w, 0x29
jae 0x1400d9b1c
mov rbx, r15
shl rbx, 4
mov rdi, rsi
add rdi, rbx
mov r13, qword [rsi + rbx]
test r13, r13
je 0x1400d9b92
inc qword [rsi + 0x5a8]
mov rax, qword [r13]
test rax, rax
je 0x1400d996d
mov rcx, rax
not rcx
cmp qword [r13 + 8], rcx
jne 0x1400d9c77
bswap rax
prefetcht0 byte [rax]
dec byte [rsi + rbx + 8]
mov qword [rdi], rax
movzx eax, word [rsi + rbx + 0xa]
mov qword [rsp + 0x70], rax
sub qword [rsi + 0x590], rax
test r13, r13
je 0x1400d9b2a
mov rdi, qword [rsp + 0x70]
mov ebx, dword [rsp + 0x34]
jmp 0x1400d9010
mov al, byte [0x1402021f8]
cmp al, 2
je 0x1400d9bbc
mov rax, r13
shl rax, 5
mov rcx, qword [r15 + rax + 0x10]
lea rdx, [r14 + 0x10]
cmp rdx, rcx
ja 0x1400d90d1
lea rdx, [r14 + 0x1410]
cmp rdx, rcx
jb 0x1400d90d1
mov edx, dword [rcx + 0x18]
cmp byte [r15 + rax + 0x1d], 0
mov r8, rdx
jne 0x1400d9bc6
mov rax, qword [0x1402021d0]
and eax, 1
shl rax, 0xe
lea r9, [rax + rsi]
lea rbp, [rax + rsi]
add rbp, 0x4000
mov rbx, qword [rsp + 0x40]
mov rcx, rbx
shr rcx, 4
shr ebx, 0xa
and ebx, 0x7ff
mov edi, 1
shl rdi, cl
mov rax, qword [r9 + rbx*8 + 0x4000]
mov rcx, rax
or rcx, rdi
lock cmpxchg qword [rbp + rbx*8], rcx
jne 0x1400d98eb
test rax, rdi
jne 0x1400d9ab9
mov rsi, rdx
lock xadd qword [0x1402021c0], rsi
add rsi, rdx
mov rdi, qword [0x1402021c8]
cmp byte [0x1402021f9], 1
jne 0x1400d992e
mov rcx, qword [rsp + 0x40]
xor edx, edx
call fcn.140108da0
cmp rsi, rdi
jbe 0x1400d91fc
mov al, byte [0x1402021f8]
test al, al
jne 0x1400d91fc
lea rcx, [0x1402021c0]
mov edx, 1
call fcn.140160db0
jmp 0x1400d91fc
int3
lea rcx, [rsp + 0x70]
call fcn.14000bb50
jmp 0x1400d91fc
xor eax, eax
jmp 0x1400d9831
mov rdx, qword [rsp + 0x38]
lea rcx, [rdx + rdi*8]
add rcx, 0x10
lea rax, [rsp + 0x60]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], 0x4000
mov r8d, r12d
mov r9, r14
call fcn.1400c9120
test rax, rax
je 0x1400d9bd4
mov r13, rax
and rax, 0xffffffffffe00000
mov rcx, r13
shr rcx, 9
and ecx, 0xfe0
lea rbp, [rax + rcx]
add rbp, 0x1000
movzx edx, byte [rbp + 0x1e]
mov rcx, rdx
neg rcx
shl rdx, 5
mov rax, rbp
sub rax, rdx
cmp byte [rax + 0x1d], 0
jne 0x1400d9bdc
shl rcx, 5
mov rax, qword [rbp + rcx + 0x10]
mov edi, dword [rax + 0x18]
jmp 0x1400d956d
mov rdx, rsi
add rdx, rax
movzx r8d, cl
shr r8, 1
mov rcx, rsi
call fcn.1400cfe10
jmp 0x1400d9295
mov al, byte [0x1402021f8]
cmp al, 2
jne 0x1400d92e0
call fcn.140160e90
jmp 0x1400d92e0
call fcn.140100230
cmp rax, 2
jb 0x1400d9bea
mov rsi, rax
inc qword [rax + 0x5a0]
cmp r15w, 0x29
jae 0x1400d9c04
mov rbx, r15
shl rbx, 4
mov rdi, rsi
add rdi, rbx
mov r13, qword [rsi + rbx]
test r13, r13
je 0x1400d9cfe
inc qword [rsi + 0x5a8]
mov rax, qword [r13]
test rax, rax
je 0x1400d9ad1
mov rcx, rax
not rcx
cmp qword [r13 + 8], rcx
jne 0x1400d9c77
bswap rax
prefetcht0 byte [rax]
dec byte [rsi + rbx + 8]
mov qword [rdi], rax
movzx eax, word [rsi + rbx + 0xa]
mov qword [rsp + 0x70], rax
sub qword [rsi + 0x590], rax
test r13, r13
je 0x1400d9c12
mov rsi, qword [rsp + 0x70]
jmp 0x1400d9c6d
call fcn.140161e60
call fcn.140160e90
jmp 0x1400d9638
mov r8, qword [rdi + 0x20]
jmp 0x1400d967c
xor eax, eax
jmp 0x1400d9a8e
shl rcx, 5
mov rdi, qword [rbp + rcx + 0x20]
jmp 0x1400d9441
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
xor r13d, r13d
jmp 0x1400d9620
shl rcx, 5
mov rsi, qword [rbx + rcx + 0x20]
jmp 0x1400d94f6
lea r8, [rsp + 0x70]
mov rcx, qword [rsp + 0x38]
mov edx, r15d
call fcn.140018750
mov r13, rax
jmp 0x1400d9849
inc qword [rsi + 0x5c0]
inc qword [rsi + 0x5b0]
lea rdi, [r15 + r15*4]
mov rbx, qword [rsp + 0x38]
lea rsi, [rbx + 8]
mov rcx, rsi
call fcn.1400ffab0
mov rax, qword [rbx + rdi*8 + 0x10]
mov r13, qword [rax]
test r13, r13
je 0x1400d9d3e
mov byte [rsp + 0x60], 0
mov rcx, qword [rsp + 0x38]
mov edi, dword [rcx + rdi*8 + 0x28]
mov rcx, qword [r13]
test rcx, rcx
je 0x1400d9bd0
mov rdx, rcx
not rdx
cmp qword [r13 + 8], rdx
jne 0x1400d9c77
bswap rcx
prefetcht0 byte [rcx]
mov qword [rax], rcx
inc word [rax + 0x18]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
jmp 0x1400d9857
inc qword [rsi + 0x5b8]
inc qword [rsi + 0x5b0]
mov rcx, rsi
mov rdx, r15
call fcn.1400c8f30
mov r13, qword [rdi]
test r13, r13
jne 0x1400d980e
jmp 0x1400d9b2a
call fcn.140160e90
jmp 0x1400d986e
mov r8, qword [r12 + 0x20]
jmp 0x1400d98a9
xor ecx, ecx
jmp 0x1400d9b7d
mov rcx, r15
jmp 0x1400d9dbf
shl rcx, 5
mov rdi, qword [rbp + rcx + 0x20]
jmp 0x1400d956d
lea r8, [rsp + 0x70]
mov rcx, qword [rsp + 0x38]
mov edx, r15d
call fcn.140018750
mov r13, rax
jmp 0x1400d9aa6
inc qword [rsi + 0x5c0]
inc qword [rsi + 0x5b0]
lea rsi, [r15 + r15*4]
mov rdi, qword [rsp + 0x38]
lea r15, [rdi + 8]
mov rcx, r15
call fcn.1400ffab0
mov rax, qword [rdi + rsi*8 + 0x10]
mov r13, qword [rax]
test r13, r13
je 0x1400d9c80
mov byte [rsp + 0x60], 0
mov rcx, qword [rsp + 0x38]
mov esi, dword [rcx + rsi*8 + 0x28]
mov rcx, qword [r13]
test rcx, rcx
je 0x1400d9c7c
mov rdx, rcx
not rdx
cmp qword [r13 + 8], rdx
jne 0x1400d9c77
bswap rcx
prefetcht0 byte [rcx]
mov qword [rax], rcx
inc word [rax + 0x18]
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov r12d, dword [rsp + 0x34]
jmp 0x1400d89e2
call fcn.140161e10
xor ecx, ecx
jmp 0x1400d9c5d
mov rdx, qword [rsp + 0x38]
lea rcx, [rdx + rsi*8]
add rcx, 0x10
lea rax, [rsp + 0x60]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], 0x4000
mov r8d, dword [rsp + 0x34]
mov r9, r14
call fcn.1400c9120
test rax, rax
je 0x1400d9d28
mov r13, rax
and rax, 0xffffffffffe00000
mov rcx, r13
shr rcx, 9
and ecx, 0xfe0
lea rbp, [rax + rcx]
add rbp, 0x1000
movzx edx, byte [rbp + 0x1e]
mov rcx, rdx
neg rcx
shl rdx, 5
mov rax, rbp
sub rax, rdx
cmp byte [rax + 0x1d], 0
jne 0x1400d9d30
shl rcx, 5
mov rax, qword [rbp + rcx + 0x10]
mov esi, dword [rax + 0x18]
jmp 0x1400d9c64
inc qword [rsi + 0x5b8]
inc qword [rsi + 0x5b0]
mov rcx, rsi
mov rdx, r15
call fcn.1400c8f30
mov r13, qword [rdi]
test r13, r13
jne 0x1400d9a6f
jmp 0x1400d9c12
mov rcx, r15
jmp 0x1400d9ae6
shl rcx, 5
mov rsi, qword [rbp + rcx + 0x20]
jmp 0x1400d9c64
mov rdx, qword [rsp + 0x38]
lea rcx, [rdx + rdi*8]
add rcx, 0x10
lea rax, [rsp + 0x60]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], 0x4000
mov r8d, dword [rsp + 0x34]
mov r9, r14
call fcn.1400c9120
test rax, rax
je 0x1400d9dbc
mov r13, rax
and rax, 0xffffffffffe00000
mov rcx, r13
shr rcx, 9
and ecx, 0xfe0
lea rbp, [rax + rcx]
add rbp, 0x1000
movzx edx, byte [rbp + 0x1e]
mov rcx, rdx
neg rcx
shl rdx, 5
mov rax, rbp
sub rax, rdx
cmp byte [rax + 0x1d], 0
jne 0x1400d9dca
shl rcx, 5
mov rax, qword [rbp + rcx + 0x10]
mov edi, dword [rax + 0x18]
jmp 0x1400d9b84
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
jmp 0x1400d91fc
shl rcx, 5
mov rdi, qword [rbp + rcx + 0x20]
jmp 0x1400d9b84