Function at 0x464bd0
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x30
mov dword [ebp - 0x30], ecx
mov esi, dword [ebp + 0x14]
mov eax, dword [0x520014]
xor eax, ebp
mov dword [ebp - 0x10], eax
mov eax, dword [ebp + 8]
cmp dword [ebp + 0xc], 0
jne 0x464ddf
test al, 4
je 0x4655ac
mov eax, 0x20
mov ecx, 0x20
mov esi, dword [ebp + 0x10]
test esi, esi
je 0x464c15
bsr ecx, esi
xor ecx, 0x1f
sub eax, ecx
mov cl, byte [eax + 0x502bf8]
mov edx, esi
shr edx, cl
and edx, 7
mov ecx, dword [eax*4 + 0x502c1c]
and ecx, esi
lea eax, [edx + eax*8]
cmp ecx, 1
sbb eax, 0xffffffff
movzx edi, word [eax + eax + 0x502ec0]
mov byte [ebp - 0x18], 0
mov esi, dword [ebp - 0x30]
cmp byte [esi], 2
je 0x465acd
cmp byte [esi + 2], 0
je 0x465a01
mov ebx, dword [0x526fd0]
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
push ebx
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov ebx, eax
test esi, esi
jne 0x4656e5
cmp ebx, 1
jbe 0x465b06
add dword [ebx + 0x308], 1
adc dword [ebx + 0x30c], 0
add dword [ebx + 0x318], 1
adc dword [ebx + 0x31c], 0
cmp word [0x522c90], di
jb 0x464d14
cmp dword [ebx + edi*8], 0
je 0x465315
add dword [ebx + 0x320], 1
adc dword [ebx + 0x324], 0
mov eax, dword [ebx + edi*8]
mov dword [ebp - 0x28], eax
mov edx, dword [ebp - 0x28]
mov eax, dword [edx]
test eax, eax
je 0x464cd9
mov ecx, eax
not ecx
cmp dword [edx + 4], ecx
jne 0x466424
add byte [ebx + edi*8 + 4], 0xff
bswap eax
mov dword [ebx + edi*8], eax
lea eax, [ebx + edi*8]
add eax, 6
cmp dword [ebp - 0x28], 0
je 0x464d30
movzx esi, word [eax]
mov eax, dword [ebp + 8]
test al, 2
jne 0x465ae9
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0048a678
mov eax, dword [ebp - 0x28]
add esp, 0x30
pop esi
pop edi
pop ebx
pop ebp
ret 0x10
add dword [ebx + 0x338], 1
adc dword [ebx + 0x33c], 0
add dword [ebx + 0x328], 1
adc dword [ebx + 0x32c], 0
shl edi, 5
mov eax, dword [ebp - 0x30]
lea esi, [eax + edi]
add esi, 0x10
lea ebx, [eax + 8]
xor eax, eax
inc eax
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x2c], 0
mov eax, dword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
push ebx
call eax
test al, al
jne 0x464d8e
jmp 0x465749
pause
dec eax
jne 0x464d5d
mov edx, dword [ebp - 0x2c]
add edx, ecx
add ecx, ecx
cmp ecx, 0x40
mov eax, 0x40
cmovge ecx, eax
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x2c], edx
cmp edx, 0x3e8
mov eax, dword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
jl 0x464d51
mov ecx, ebx
call fcn.0045a6c0
mov dword [ebp - 0x2c], ebx
mov eax, dword [esi]
mov ebx, dword [eax]
test ebx, ebx
je 0x46534c
mov byte [ebp - 0x18], 0
mov ecx, dword [ebp - 0x30]
mov esi, dword [ecx + edi + 0x1c]
mov ecx, dword [ebx]
test ecx, ecx
mov dword [ebp - 0x28], ebx
je 0x464dbe
mov edx, ecx
not edx
cmp dword [ebx + 4], edx
jne 0x466424
bswap ecx
mov dword [eax], ecx
inc word [eax + 0xc]
mov edx, dword [ebp - 0x2c]
push edx
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
cmp dword [ebp - 0x28], 0
jne 0x464cf2
jmp 0x4655a0
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x46542c
cmp eax, 0x7fe00001
jae 0x465b96
mov eax, dword [ebp + 8]
test al, 4
sete al
mov cl, byte [0x528328]
mov dword [ebp - 0x24], 0xffffffff
and cl, al
mov byte [ebp - 0x35], cl
jne 0x465c09
mov ecx, dword [ebp + 0xc]
mov eax, ecx
and eax, 0xffe00000
shr ecx, 9
and ecx, 0xfe0
lea esi, [eax + ecx]
add esi, 0x1000
movzx eax, word [esi + 0x1e]
mov edi, eax
neg edi
shl eax, 5
mov ecx, esi
sub ecx, eax
mov dword [ebp - 0x3c], ecx
mov eax, ecx
and eax, 0xfffff000
mov eax, dword [eax]
mov dword [ebp - 0x28], eax
lea ebx, [eax + 8]
xor eax, eax
inc eax
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x34], 0
mov eax, dword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
push ebx
call eax
test al, al
jne 0x464ea1
jmp 0x465897
pause
dec eax
jne 0x464e70
mov edx, dword [ebp - 0x34]
add edx, ecx
add ecx, ecx
cmp ecx, 0x40
mov eax, 0x40
cmovge ecx, eax
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x34], edx
cmp edx, 0x3e8
mov eax, dword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
jl 0x464e64
mov ecx, ebx
call fcn.0045a6c0
shl edi, 5
cmp byte [esi + edi + 0x11], 0
jne 0x465c25
mov eax, dword [esi + edi + 8]
add eax, 0xc
mov eax, dword [eax]
mov dword [ebp - 0x24], eax
mov eax, dword [esi + edi + 8]
cmp byte [eax + 0x10], 0
je 0x465bb0
push ebx
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov eax, 0x20
mov ecx, 0x20
mov ebx, dword [ebp + 0x10]
test ebx, ebx
je 0x464ee7
bsr ecx, ebx
xor ecx, 0x1f
sub eax, ecx
mov cl, byte [eax + 0x502bf8]
mov edx, ebx
shr edx, cl
and edx, 7
mov ecx, dword [eax*4 + 0x502c1c]
and ecx, ebx
lea eax, [edx + eax*8]
cmp ecx, 1
sbb eax, 0xffffffff
movzx eax, word [eax + eax + 0x502ec0]
shl eax, 5
mov ecx, dword [ebp - 0x28]
cmp byte [ecx + eax + 0x20], 0
je 0x465bf7
mov eax, dword [ecx + eax + 0x1c]
movzx ecx, word [esi + 0x1e]
shl ecx, 5
neg ecx
mov ecx, dword [esi + ecx + 8]
cmp eax, dword [ecx + 0xc]
je 0x465412
mov eax, dword [ebp + 8]
test al, 4
je 0x46575e
mov eax, 0x20
mov ecx, 0x20
mov esi, dword [ebp + 0x10]
test esi, esi
je 0x464f5d
bsr ecx, esi
xor ecx, 0x1f
sub eax, ecx
mov cl, byte [eax + 0x502bf8]
mov edx, esi
shr edx, cl
and edx, 7
mov ecx, dword [eax*4 + 0x502c1c]
and ecx, esi
lea eax, [edx + eax*8]
cmp ecx, 1
sbb eax, 0xffffffff
movzx edi, word [eax + eax + 0x502ec0]
mov byte [ebp - 0x18], 0
mov esi, dword [ebp - 0x30]
cmp byte [esi], 2
je 0x465cef
cmp byte [esi + 2], 0
je 0x465a72
mov ebx, dword [0x526fd0]
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
push ebx
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov ebx, eax
test esi, esi
jne 0x4658ac
cmp ebx, 1
jbe 0x465d28
add dword [ebx + 0x308], 1
adc dword [ebx + 0x30c], 0
add dword [ebx + 0x318], 1
adc dword [ebx + 0x31c], 0
cmp word [0x522c90], di
jb 0x46517e
cmp dword [ebx + edi*8], 0
je 0x4656f1
add dword [ebx + 0x320], 1
adc dword [ebx + 0x324], 0
mov edx, dword [ebx + edi*8]
mov eax, dword [edx]
test eax, eax
mov dword [ebp - 0x28], edx
je 0x465022
mov ecx, eax
not ecx
cmp dword [edx + 4], ecx
jne 0x466424
dec byte [ebx + edi*8 + 4]
bswap eax
mov dword [ebx + edi*8], eax
lea eax, [ebx + edi*8]
add eax, 6
cmp dword [ebp - 0x28], 0
je 0x46519a
movzx esi, word [eax]
mov eax, dword [ebp + 8]
test al, 2
jne 0x465d0b
mov edx, dword [ebp - 0x28]
test edx, edx
je 0x465b96
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp + 0x10]
cmp eax, ecx
cmova eax, ecx
push eax
mov esi, dword [ebp + 0xc]
push esi
push edx
call fcn.0048cc70
add esp, 0xc
mov al, byte [0x528328]
test al, 1
jne 0x465c30
mov eax, esi
and eax, 0xffe00000
mov ecx, esi
shr ecx, 9
and ecx, 0xfe0
lea esi, [eax + ecx]
add esi, 0x1000
movzx ecx, word [esi + 0x1e]
mov edx, ecx
neg edx
mov dword [ebp - 0x2c], edx
shl ecx, 5
mov dword [ebp - 0x30], esi
sub esi, ecx
mov ecx, esi
and ecx, 0xfffff000
mov ecx, dword [ecx]
cmp byte [ecx], 2
je 0x465c4f
mov dword [ebp - 0x3c], esi
cmp byte [ecx + 2], 0
je 0x46525e
mov eax, dword [ebp - 0x2c]
shl eax, 5
mov edx, dword [ebp - 0x30]
mov edi, dword [edx + eax + 8]
cmp byte [edi + 0x10], 0
je 0x46525e
mov dword [ebp - 0x34], ecx
mov ebx, dword [0x526fd0]
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
push ebx
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov ebx, eax
test esi, esi
jne 0x4658b8
cmp ebx, 2
mov ecx, dword [ebp - 0x34]
jb 0x46525e
sub edi, ecx
add edi, 0xfffffff0
sar edi, 5
add dword [ebx + 0x340], 1
adc dword [ebx + 0x344], 0
movzx eax, word [0x522c90]
cmp edi, eax
ja 0x465250
mov eax, dword [ebx + edi*8]
bswap eax
mov ecx, dword [ebp + 0xc]
mov dword [ecx], eax
not eax
mov dword [ecx + 4], eax
mov dword [ebx + edi*8], ecx
inc byte [ebx + edi*8 + 4]
add dword [ebx + 0x348], 1
adc dword [ebx + 0x34c], 0
mov al, byte [ebx + edi*8 + 5]
cmp byte [ebx + edi*8 + 4], al
ja 0x465a5c
mov al, byte [ebx + 0x310]
test al, 1
je 0x464cfd
mov ecx, ebx
call fcn.0047e9e0
jmp 0x464cfd
add dword [ebx + 0x338], 1
adc dword [ebx + 0x33c], 0
add dword [ebx + 0x328], 1
adc dword [ebx + 0x32c], 0
shl edi, 5
mov eax, dword [ebp - 0x30]
lea esi, [eax + edi]
add esi, 0x10
lea ebx, [eax + 8]
xor eax, eax
inc eax
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x2c], 0
mov eax, dword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
push ebx
call eax
test al, al
jne 0x4651f8
jmp 0x4658c4
pause
dec eax
jne 0x4651c7
mov edx, dword [ebp - 0x2c]
add edx, ecx
add ecx, ecx
cmp ecx, 0x40
mov eax, 0x40
cmovge ecx, eax
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x2c], edx
cmp edx, 0x3e8
mov eax, dword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
jl 0x4651bb
mov ecx, ebx
call fcn.0045a6c0
mov dword [ebp - 0x2c], ebx
mov eax, dword [esi]
mov ebx, dword [eax]
test ebx, ebx
je 0x4653af
mov byte [ebp - 0x18], 0
mov ecx, dword [ebp - 0x30]
mov esi, dword [ecx + edi + 0x1c]
mov ecx, dword [ebx]
test ecx, ecx
mov dword [ebp - 0x28], ebx
je 0x465228
mov edx, ecx
not edx
cmp dword [ebx + 4], edx
jne 0x466424
bswap ecx
mov dword [eax], ecx
inc word [eax + 0xc]
mov edx, dword [ebp - 0x2c]
push edx
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
cmp dword [ebp - 0x28], 0
jne 0x46503e
mov dword [ebp - 0x28], 0
jmp 0x465049
add dword [ebx + 0x350], 1
adc dword [ebx + 0x354], 0
xor esi, esi
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x14], esi
add ecx, 8
xor eax, eax
inc eax
mov dword [ebp - 0x34], eax
mov edx, dword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
mov ebx, ecx
push ecx
mov edi, edx
call edx
test al, al
jne 0x4652ab
jmp 0x4658d9
pause
dec eax
jne 0x465285
add esi, edi
mov ecx, ebx
add edi, edi
cmp edi, 0x40
mov eax, 0x40
cmovge edi, eax
mov dword [ebp - 0x34], edi
cmp esi, 0x3e8
jl 0x465275
call fcn.0045a6c0
mov edx, dword [ebp - 0x3c]
mov eax, dword [edx]
mov ecx, dword [ebp + 0xc]
cmp eax, ecx
je 0x465db5
bswap eax
mov dword [ecx], eax
not eax
mov dword [ecx + 4], eax
mov dword [edx], ecx
mov esi, dword [ebp - 0x2c]
shl esi, 5
mov ecx, dword [ebp - 0x30]
movzx eax, word [ecx + esi + 0xc]
dec eax
mov word [ecx + esi + 0xc], ax
test ax, ax
jle 0x465737
mov ecx, ebx
xor eax, eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], eax
mov esi, dword [ebp - 0x20]
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x18], esi
push ecx
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
test esi, esi
je 0x464cfd
lea ecx, [ebp - 0x18]
call fcn.0045a6d0
jmp 0x464cfd
add dword [ebx + 0x330], 1
adc dword [ebx + 0x334], 0
add dword [ebx + 0x328], 1
adc dword [ebx + 0x32c], 0
mov ecx, ebx
push edi
call fcn.0047e540
mov eax, dword [ebx + edi*8]
mov dword [ebp - 0x28], eax
test eax, eax
jne 0x464cc3
jmp 0x464d30
lea eax, [ebp - 0x18]
mov ecx, esi
push eax
push dword [ebp + 0x10]
push dword [ebp + 8]
push dword [ebp - 0x30]
call fcn.00466690
test eax, eax
je 0x465db8
mov ecx, eax
and eax, 0xffe00000
mov dword [ebp - 0x28], ecx
shr ecx, 9
and ecx, 0xfe0
add eax, ecx
add eax, 0x1000
movzx edx, word [eax + 0x1e]
mov ecx, edx
neg ecx
shl edx, 5
mov esi, eax
sub esi, edx
cmp byte [esi + 0x11], 0
mov edx, dword [ebp - 0x2c]
jne 0x4659f4
shl ecx, 5
mov eax, dword [eax + ecx + 8]
add eax, 0xc
mov esi, dword [eax]
jmp 0x464dc9
lea eax, [ebp - 0x18]
mov ecx, esi
push eax
push dword [ebp + 0x10]
push dword [ebp + 8]
push dword [ebp - 0x30]
call fcn.00466690
test eax, eax
je 0x465dc7
mov ecx, eax
and eax, 0xffe00000
mov dword [ebp - 0x28], ecx
shr ecx, 9
and ecx, 0xfe0
add eax, ecx
add eax, 0x1000
movzx edx, word [eax + 0x1e]
mov ecx, edx
neg ecx
shl edx, 5
mov esi, eax
sub esi, edx
cmp byte [esi + 0x11], 0
mov edx, dword [ebp - 0x2c]
jne 0x4659e7
shl ecx, 5
mov eax, dword [eax + ecx + 8]
add eax, 0xc
mov esi, dword [eax]
jmp 0x465233
lea eax, [esi + edi]
add eax, 0x11
cmp byte [eax], 0
jne 0x465dd6
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x28], eax
jmp 0x464cfd
mov al, byte [0x528328]
test al, 1
jne 0x465de7
mov ecx, dword [ebp + 0xc]
mov eax, ecx
and eax, 0xffe00000
shr ecx, 9
and ecx, 0xfe0
lea esi, [eax + ecx]
add esi, 0x1000
movzx ecx, word [esi + 0x1e]
mov edx, ecx
neg edx
mov dword [ebp - 0x30], edx
shl ecx, 5
mov dword [ebp - 0x28], esi
sub esi, ecx
mov ecx, esi
and ecx, 0xfffff000
mov ecx, dword [ecx]
cmp byte [ecx], 2
je 0x465e10
mov dword [ebp - 0x34], esi
cmp byte [ecx + 2], 0
je 0x4654f4
mov eax, dword [ebp - 0x30]
shl eax, 5
mov edx, dword [ebp - 0x28]
mov esi, dword [edx + eax + 8]
cmp byte [esi + 0x10], 0
je 0x4654f4
mov dword [ebp - 0x2c], ecx
mov ebx, dword [0x526fd0]
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
push ebx
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov ebx, eax
test edi, edi
jne 0x4659ca
cmp ebx, 2
mov ecx, dword [ebp - 0x2c]
jb 0x4654f4
sub esi, ecx
add esi, 0xfffffff0
sar esi, 5
add dword [ebx + 0x340], 1
adc dword [ebx + 0x344], 0
movzx eax, word [0x522c90]
cmp esi, eax
jbe 0x465e96
add dword [ebx + 0x350], 1
adc dword [ebx + 0x354], 0
xor esi, esi
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x14], esi
add ecx, 8
xor eax, eax
inc eax
mov dword [ebp - 0x2c], eax
mov edi, dword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
mov ebx, ecx
push ecx
call edi
test al, al
jne 0x465543
jmp 0x4659a7
pause
dec eax
jne 0x465519
add esi, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x2c]
add ecx, ecx
cmp ecx, 0x40
mov eax, 0x40
cmovge ecx, eax
mov dword [ebp - 0x2c], ecx
cmp esi, 0x3e8
mov ecx, ebx
jl 0x46550b
call fcn.0045a6c0
mov edx, dword [ebp - 0x34]
mov eax, dword [edx]
mov ecx, dword [ebp + 0xc]
cmp eax, ecx
je 0x465de4
bswap eax
mov dword [ecx], eax
not eax
mov dword [ecx + 4], eax
mov dword [edx], ecx
mov esi, dword [ebp - 0x30]
shl esi, 5
mov ecx, dword [ebp - 0x28]
movzx eax, word [ecx + esi + 0xc]
dec eax
mov word [ecx + esi + 0xc], ax
test ax, ax
jle 0x465725
mov ecx, ebx
xor eax, eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], eax
mov esi, dword [ebp - 0x20]
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x18], esi
push ecx
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
test esi, esi
jne 0x465eda
mov dword [ebp - 0x28], 0
jmp 0x464cfd
mov dword [ebp - 0x18], 0
mov al, byte [0x528328]
mov byte [ebp - 0x28], al
test al, 1
jne 0x465eee
mov eax, 0x20
mov ecx, 0x20
mov esi, dword [ebp + 0x10]
test esi, esi
je 0x4655da
bsr ecx, esi
xor ecx, 0x1f
sub eax, ecx
mov cl, byte [eax + 0x502bf8]
mov edx, esi
shr edx, cl
and edx, 7
mov ecx, dword [eax*4 + 0x502c1c]
and ecx, esi
lea eax, [edx + eax*8]
cmp ecx, 1
sbb eax, 0xffffffff
movzx edi, word [eax + eax + 0x502ec0]
mov byte [ebp - 0x20], 0
mov esi, dword [ebp - 0x30]
cmp byte [esi], 2
je 0x465f15
cmp byte [esi + 2], 0
mov eax, edi
mov dword [ebp - 0x2c], edi
jne 0x465f31
mov eax, edi
shl eax, 5
lea ebx, [esi + eax]
add ebx, 0x10
lea ecx, [esi + 8]
xor esi, esi
inc esi
mov dword [ebp - 0x34], 0
mov eax, dword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
mov edi, ecx
push ecx
call eax
test al, al
jne 0x465679
jmp 0x4659b9
pause
dec eax
jne 0x46564d
add dword [ebp - 0x34], esi
add esi, esi
cmp esi, 0x40
mov eax, 0x40
cmovge esi, eax
cmp dword [ebp - 0x34], 0x3e8
mov ecx, edi
mov ebx, edx
mov eax, dword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
jl 0x46563f
call fcn.0045a6c0
mov eax, dword [ebx]
mov ecx, ebx
mov ebx, dword [eax]
test ebx, ebx
je 0x46594a
mov byte [ebp - 0x20], 0
mov edx, dword [ebp - 0x2c]
shl edx, 5
mov ecx, dword [ebp - 0x30]
mov esi, dword [ecx + edx + 0x1c]
mov ecx, dword [ebx]
test ecx, ecx
je 0x4656ab
mov edx, ecx
not edx
cmp dword [ebx + 4], edx
jne 0x466424
bswap ecx
mov dword [eax], ecx
inc word [eax + 0xc]
push edi
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
test ebx, ebx
je 0x465ee7
mov eax, dword [ebp + 8]
test al, 2
jne 0x465fc5
mov dword [ebp - 0x18], ebx
test byte [ebp - 0x28], 1
jne 0x465fe0
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x28], eax
jmp 0x464cfd
push esi
call dword [sym.imp.KERNEL32.dll_SetLastError]
jmp 0x464c77
add dword [ebx + 0x330], 1
adc dword [ebx + 0x334], 0
add dword [ebx + 0x328], 1
adc dword [ebx + 0x32c], 0
mov ecx, ebx
push edi
call fcn.0047e540
mov edx, dword [ebx + edi*8]
test edx, edx
jne 0x46500c
jmp 0x46519a
lea eax, [ebp - 0x20]
mov ecx, edx
push eax
call fcn.0047ea60
mov ecx, ebx
jmp 0x465585
lea eax, [ebp - 0x20]
mov ecx, edx
push eax
call fcn.0047ea60
mov ecx, ebx
jmp 0x4652ed
mov ecx, dword [ebp - 0x28]
mov eax, ecx
test ecx, ecx
jg 0x464d5d
mov edx, dword [ebp - 0x2c]
jmp 0x464d67
mov dword [ebp - 0x18], 0
mov al, byte [0x528328]
mov byte [ebp - 0x28], al
test al, 1
jne 0x465ffb
mov eax, 0x20
mov ecx, 0x20
mov esi, dword [ebp + 0x10]
test esi, esi
je 0x46578c
bsr ecx, esi
xor ecx, 0x1f
sub eax, ecx
mov cl, byte [eax + 0x502bf8]
mov edx, esi
shr edx, cl
and edx, 7
mov ecx, dword [eax*4 + 0x502c1c]
and ecx, esi
lea eax, [edx + eax*8]
cmp ecx, 1
sbb eax, 0xffffffff
movzx edi, word [eax + eax + 0x502ec0]
mov byte [ebp - 0x20], 0
mov esi, dword [ebp - 0x30]
cmp byte [esi], 2
je 0x466026
cmp byte [esi + 2], 0
mov eax, edi
mov dword [ebp - 0x2c], edi
jne 0x466042
mov eax, edi
shl eax, 5
lea ebx, [esi + eax]
add ebx, 0x10
lea ecx, [esi + 8]
xor esi, esi
inc esi
mov dword [ebp - 0x34], 0
mov eax, dword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
mov edi, ecx
push ecx
call eax
test al, al
jne 0x46582b
jmp 0x4659d6
pause
dec eax
jne 0x4657ff
add dword [ebp - 0x34], esi
add esi, esi
cmp esi, 0x40
mov eax, 0x40
cmovge esi, eax
cmp dword [ebp - 0x34], 0x3e8
mov ecx, edi
mov ebx, edx
mov eax, dword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
jl 0x4657f1
call fcn.0045a6c0
mov eax, dword [ebx]
mov ecx, ebx
mov ebx, dword [eax]
test ebx, ebx
je 0x4658ed
mov byte [ebp - 0x20], 0
mov edx, dword [ebp - 0x2c]
shl edx, 5
mov ecx, dword [ebp - 0x30]
mov esi, dword [ecx + edx + 0x1c]
mov ecx, dword [ebx]
test ecx, ecx
je 0x46585d
mov edx, ecx
not edx
cmp dword [ebx + 4], edx
jne 0x466424
bswap ecx
mov dword [eax], ecx
inc word [eax + 0xc]
push edi
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
test ebx, ebx
je 0x465ff4
mov eax, dword [ebp + 8]
test al, 2
jne 0x4660d6
mov dword [ebp - 0x18], ebx
test byte [ebp - 0x28], 1
jne 0x4660f1
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x28], eax
jmp 0x465049
mov ecx, dword [ebp - 0x2c]
mov eax, ecx
test ecx, ecx
jg 0x464e70
mov edx, dword [ebp - 0x34]
jmp 0x464e7a
push esi
call dword [sym.imp.KERNEL32.dll_SetLastError]
jmp 0x464fbf
push esi
call dword [sym.imp.KERNEL32.dll_SetLastError]
jmp 0x465101
mov ecx, dword [ebp - 0x28]
mov eax, ecx
test ecx, ecx
jg 0x4651c7
mov edx, dword [ebp - 0x2c]
jmp 0x4651d1
mov edx, edi
mov edi, dword [ebp - 0x34]
mov eax, edi
test edi, edi
jg 0x465285
jmp 0x46528c
lea eax, [ebp - 0x20]
push eax
push dword [ebp + 0x10]
push dword [ebp + 8]
push dword [ebp - 0x30]
call fcn.00466690
test eax, eax
je 0x46615d
mov ebx, eax
and eax, 0xffe00000
mov ecx, ebx
shr ecx, 9
and ecx, 0xfe0
add eax, ecx
add eax, 0x1000
movzx edx, word [eax + 0x1e]
mov ecx, edx
neg ecx
shl edx, 5
mov esi, eax
sub esi, edx
cmp byte [esi + 0x11], 0
jne 0x466167
shl ecx, 5
mov eax, dword [eax + ecx + 8]
add eax, 0xc
mov esi, dword [eax]
jmp 0x465865
lea eax, [ebp - 0x20]
push eax
push dword [ebp + 0x10]
push dword [ebp + 8]
push dword [ebp - 0x30]
call fcn.00466690
test eax, eax
je 0x4661ce
mov ebx, eax
mov ecx, eax
and eax, 0xffe00000
shr ecx, 9
and ecx, 0xfe0
add eax, ecx
add eax, 0x1000
movzx edx, word [eax + 0x1e]
mov ecx, edx
neg ecx
shl edx, 5
mov esi, eax
sub esi, edx
cmp byte [esi + 0x11], 0
jne 0x4661d8
shl ecx, 5
mov eax, dword [eax + ecx + 8]
add eax, 0xc
mov esi, dword [eax]
jmp 0x4656b3
mov ecx, dword [ebp - 0x2c]
mov eax, ecx
test ecx, ecx
jg 0x465519
jmp 0x465521
mov edx, ebx
mov eax, esi
test esi, esi
jg 0x46564d
jmp 0x465655
push edi
call dword [sym.imp.KERNEL32.dll_SetLastError]
jmp 0x4654b9
mov edx, ebx
mov eax, esi
test esi, esi
jg 0x4657ff
jmp 0x465807
shl ecx, 5
add eax, ecx
add eax, 0x20
jmp 0x46540b
shl ecx, 5
add eax, ecx
add eax, 0x20
jmp 0x4653a8
mov esi, edi
shl esi, 5
mov ebx, dword [ebp - 0x30]
lea ecx, [ebx + 8]
mov dword [ebp - 0x2c], ecx
call fcn.00477df0
mov eax, dword [ebx + esi + 0x10]
mov ecx, dword [eax]
mov dword [ebp - 0x28], ecx
test ecx, ecx
je 0x4662c6
mov byte [ebp - 0x18], 0
shl edi, 5
mov ecx, dword [ebp - 0x30]
mov esi, dword [ecx + edi + 0x1c]
mov ecx, dword [ebp - 0x28]
mov ecx, dword [ecx]
test ecx, ecx
je 0x465a4c
mov edx, ecx
not edx
mov edi, dword [ebp - 0x28]
cmp dword [edi + 4], edx
jne 0x466424
bswap ecx
mov dword [eax], ecx
inc word [eax + 0xc]
push dword [ebp - 0x2c]
jmp 0x464dca
lea edx, [ebx + edi*8]
movzx eax, al
shr eax, 1
mov ecx, ebx
push eax
push edx
call fcn.0047e690
jmp 0x465164
mov esi, edi
shl esi, 5
mov ebx, dword [ebp - 0x30]
lea ecx, [ebx + 8]
mov dword [ebp - 0x2c], ecx
call fcn.00477df0
mov eax, dword [ebx + esi + 0x10]
mov ecx, dword [eax]
mov dword [ebp - 0x28], ecx
test ecx, ecx
je 0x46632e
mov byte [ebp - 0x18], 0
shl edi, 5
mov ecx, dword [ebp - 0x30]
mov esi, dword [ecx + edi + 0x1c]
mov ecx, dword [ebp - 0x28]
mov ecx, dword [ecx]
test ecx, ecx
je 0x465abd
mov edx, ecx
not edx
mov edi, dword [ebp - 0x28]
cmp dword [edi + 4], edx
jne 0x466424
bswap ecx
mov dword [eax], ecx
inc word [eax + 0xc]
push dword [ebp - 0x2c]
jmp 0x465234
mov al, byte [0x522cc8]
cmp al, 2
jne 0x464c4e
mov ecx, 0x522cb8
call fcn.004b3dd0
jmp 0x464c4e
cmp byte [ebp - 0x18], 0
jne 0x464cfd
push esi
push 0
push dword [ebp - 0x28]
call fcn.0048d770
add esp, 0xc
jmp 0x464cfd
je 0x464d30
mov ebx, dword [ebp - 0x30]
mov byte [ebx + 2], 0
push ebx
call fcn.0045a4b0
add esp, 4
mov esi, eax
mov byte [ebx + 2], 1
add dword [eax + 0x308], 1
adc dword [eax + 0x30c], 0
add dword [eax + 0x318], 1
adc dword [eax + 0x31c], 0
cmp word [0x522c90], di
jb 0x466105
cmp dword [esi + edi*8], 0
je 0x466126
add dword [esi + 0x320], 1
adc dword [esi + 0x324], 0
mov eax, dword [esi + edi*8]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x28]
mov eax, dword [eax]
test eax, eax
je 0x465b82
mov ecx, eax
not ecx
mov edx, dword [ebp - 0x28]
cmp dword [edx + 4], ecx
jne 0x466424
dec byte [esi + edi*8 + 4]
bswap eax
mov dword [esi + edi*8], eax
lea eax, [esi + edi*8]
add eax, 6
jmp 0x464ce9
mov dword [ebp - 0x28], 0
mov eax, dword [ebp + 8]
test al, 1
jne 0x464cfd
push dword [ebp + 0x10]
call fcn.004ecba0
mov ecx, dword [ebp - 0x28]
push dword [ebp + 0x10]
push dword [ebp - 0x3c]
call fcn.004b42e0
mov byte [ebp - 0x2c], al
push ebx
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
cmp byte [ebp - 0x2c], 0
je 0x464ed0
test byte [ebp - 0x35], 1
je 0x465421
push dword [ebp + 0x14]
push dword [ebp + 0x10]
mov esi, dword [ebp + 0xc]
push esi
push esi
call fcn.004f6f10
add esp, 0x10
mov dword [ebp - 0x28], esi
jmp 0x464cfd
mov eax, dword [ebp + 0x10]
add eax, 0xfff
and eax, 0xfffff000
jmp 0x464f25
lea eax, [ebp - 0x24]
push dword [ebp + 0xc]
push eax
call fcn.004f6f50
add esp, 8
test al, al
je 0x464e15
jmp 0x464f3b
mov eax, dword [ebp - 0x3c]
add eax, 0x20
jmp 0x464eb6
push esi
call fcn.004f6ec0
add esp, 4
push esi
call fcn.004f6ee0
add esp, 4
test al, al
jne 0x464cfd
jmp 0x46507a
mov edx, dword [ebp - 0x2c]
shl edx, 5
mov edi, dword [ebp - 0x30]
mov edx, dword [edi + edx + 8]
cmp byte [edx + 0x10], 0
je 0x4650bb
mov ecx, dword [edx + 0xc]
mov dword [ebp - 0x30], ecx
mov ecx, dword [0x522cc0]
and ecx, 1
shl ecx, 0xf
lea edx, [ecx + eax]
lea esi, [ecx + eax]
add esi, 0x4000
mov ecx, dword [ebp + 0xc]
mov edi, ecx
shr edi, 8
and edi, 0x1fff
shr cl, 3
xor ebx, ebx
inc ebx
shl ebx, cl
mov eax, dword [edx + edi*4 + 0x4000]
mov ecx, eax
or ecx, ebx
lock cmpxchg dword [esi + edi*4], ecx
jne 0x465ca1
test eax, ebx
jne 0x466174
mov ecx, dword [ebp - 0x30]
mov eax, ecx
lock xadd dword [0x522cb8], eax
add eax, ecx
mov ecx, dword [0x522cbc]
cmp eax, ecx
jbe 0x464cfd
mov al, byte [0x522cc8]
test al, al
jne 0x464cfd
mov ecx, 0x522cb8
push 1
call fcn.004edd60
jmp 0x464cfd
mov al, byte [0x522cc8]
cmp al, 2
jne 0x464f96
mov ecx, 0x522cb8
call fcn.004b3dd0
jmp 0x464f96
cmp byte [ebp - 0x18], 0
jne 0x465049
push esi
push 0
push dword [ebp - 0x28]
call fcn.0048d770
add esp, 0xc
jmp 0x465049
je 0x46519a
mov ebx, dword [ebp - 0x30]
mov byte [ebx + 2], 0
push ebx
call fcn.0045a4b0
add esp, 4
mov esi, eax
mov byte [ebx + 2], 1
add dword [eax + 0x308], 1
adc dword [eax + 0x30c], 0
add dword [eax + 0x318], 1
adc dword [eax + 0x31c], 0
cmp word [0x522c90], di
jb 0x466179
cmp dword [esi + edi*8], 0
je 0x46619a
add dword [esi + 0x320], 1
adc dword [esi + 0x324], 0
mov eax, dword [esi + edi*8]
mov dword [ebp - 0x28], eax
mov eax, dword [eax]
test eax, eax
je 0x465da1
mov ecx, eax
not ecx
mov edx, dword [ebp - 0x28]
cmp dword [edx + 4], ecx
jne 0x466424
dec byte [esi + edi*8 + 4]
bswap eax
mov dword [esi + edi*8], eax
lea eax, [esi + edi*8]
add eax, 6
jmp 0x465031
int3
mov dword [ebp - 0x28], 0
xor esi, esi
dec esi
jmp 0x464dc6
mov dword [ebp - 0x28], 0
xor esi, esi
dec esi
jmp 0x465230
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x3c]
mov dword [ecx + 0x20], eax
jmp 0x465421
int3
mov esi, dword [ebp + 0xc]
push esi
call fcn.004f6ec0
add esp, 4
mov dword [ebp - 0x28], 0
push esi
call fcn.004f6ee0
add esp, 4
test al, al
jne 0x464cfd
jmp 0x465439
mov edx, dword [ebp - 0x30]
shl edx, 5
mov edi, dword [ebp - 0x28]
mov edx, dword [edi + edx + 8]
cmp byte [edx + 0x10], 0
je 0x46547b
mov ecx, dword [edx + 0xc]
mov dword [ebp - 0x28], ecx
mov ecx, dword [0x522cc0]
and ecx, 1
shl ecx, 0xf
lea edx, [ecx + eax]
lea esi, [ecx + eax]
add esi, 0x4000
mov ecx, dword [ebp + 0xc]
mov edi, ecx
shr edi, 8
and edi, 0x1fff
shr cl, 3
xor ebx, ebx
inc ebx
shl ebx, cl
mov eax, dword [edx + edi*4 + 0x4000]
mov ecx, eax
or ecx, ebx
lock cmpxchg dword [esi + edi*4], ecx
jne 0x465e62
test eax, ebx
jne 0x466174
mov ecx, dword [ebp - 0x28]
mov eax, ecx
lock xadd dword [0x522cb8], eax
add eax, ecx
mov ecx, dword [0x522cbc]
mov dword [ebp - 0x28], 0
jmp 0x465cc9
mov eax, dword [ebx + esi*8]
bswap eax
mov ecx, dword [ebp + 0xc]
mov dword [ecx], eax
not eax
mov dword [ecx + 4], eax
mov dword [ebx + esi*8], ecx
inc byte [ebx + esi*8 + 4]
add dword [ebx + 0x348], 1
adc dword [ebx + 0x34c], 0
mov al, byte [ebx + esi*8 + 5]
cmp byte [ebx + esi*8 + 4], al
ja 0x4661e5
mov al, byte [ebx + 0x310]
mov dword [ebp - 0x28], 0
jmp 0x46516a
lea ecx, [ebp - 0x18]
call fcn.0045a6d0
jmp 0x4655a0
xor ebx, ebx
jmp 0x4656cd
lea eax, [ebp - 0x18]
push esi
push dword [ebp + 0x10]
push dword [ebp + 8]
push eax
call fcn.004f6e90
add esp, 0x10
test al, al
je 0x4655c3
push esi
push dword [ebp + 0x10]
push dword [ebp - 0x18]
jmp 0x465fe7
mov al, byte [0x522cc8]
cmp al, 2
jne 0x465613
mov ecx, 0x522cb8
call fcn.004b3dd0
jmp 0x465613
call fcn.00477dc0
cmp eax, 1
jbe 0x4661fb
mov ebx, eax
add dword [eax + 0x308], 1
adc dword [eax + 0x30c], 0
add dword [eax + 0x318], 1
adc dword [eax + 0x31c], 0
mov eax, dword [ebp - 0x2c]
cmp word [0x522c90], ax
jb 0x466218
mov eax, dword [ebp - 0x2c]
cmp dword [ebx + eax*8], 0
je 0x46628d
add dword [ebx + 0x320], 1
adc dword [ebx + 0x324], 0
mov eax, dword [ebp - 0x2c]
mov edx, dword [ebx + eax*8]
mov eax, dword [edx]
test eax, eax
je 0x465fa1
mov ecx, eax
not ecx
cmp dword [edx + 4], ecx
jne 0x466424
mov ecx, dword [ebp - 0x2c]
dec byte [ebx + ecx*8 + 4]
bswap eax
mov dword [ebx + ecx*8], eax
lea eax, [ebx + ecx*8]
add eax, 6
test edx, edx
je 0x466234
movzx esi, word [eax]
mov ebx, edx
jmp 0x4656c2
cmp byte [ebp - 0x20], 0
jne 0x4656cd
push esi
push 0
push ebx
call fcn.0048d770
add esp, 0xc
jmp 0x4656cd
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push ebx
call fcn.004f6e70
add esp, 0xc
jmp 0x4656da
xor ebx, ebx
jmp 0x46587f
lea eax, [ebp - 0x18]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 8]
push eax
call fcn.004f6e90
add esp, 0x10
test al, al
je 0x465775
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp - 0x18]
jmp 0x4660f8
mov al, byte [0x522cc8]
cmp al, 2
jne 0x4657c5
mov ecx, 0x522cb8
call fcn.004b3dd0
jmp 0x4657c5
call fcn.00477dc0
cmp eax, 1
jbe 0x466396
mov ebx, eax
add dword [eax + 0x308], 1
adc dword [eax + 0x30c], 0
add dword [eax + 0x318], 1
adc dword [eax + 0x31c], 0
mov eax, dword [ebp - 0x2c]
cmp word [0x522c90], ax
jb 0x4663b3
mov eax, dword [ebp - 0x2c]
cmp dword [ebx + eax*8], 0
je 0x466429
add dword [ebx + 0x320], 1
adc dword [ebx + 0x324], 0
mov eax, dword [ebp - 0x2c]
mov edx, dword [ebx + eax*8]
mov eax, dword [edx]
test eax, eax
je 0x4660b2
mov ecx, eax
not ecx
cmp dword [edx + 4], ecx
jne 0x466424
mov ecx, dword [ebp - 0x2c]
dec byte [ebx + ecx*8 + 4]
bswap eax
mov dword [ebx + ecx*8], eax
lea eax, [ebx + ecx*8]
add eax, 6
test edx, edx
je 0x4663cf
movzx esi, word [eax]
mov ebx, edx
jmp 0x465874
cmp byte [ebp - 0x20], 0
jne 0x46587f
push esi
push 0
push ebx
call fcn.0048d770
add esp, 0xc
jmp 0x46587f
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push ebx
call fcn.004f6e70
add esp, 0xc
jmp 0x46588c
add dword [esi + 0x338], 1
adc dword [esi + 0x33c], 0
add dword [esi + 0x328], 1
adc dword [esi + 0x32c], 0
jmp 0x464d30
add dword [esi + 0x330], 1
adc dword [esi + 0x334], 0
add dword [esi + 0x328], 1
adc dword [esi + 0x32c], 0
mov ecx, esi
push edi
call fcn.0047e540
mov eax, dword [esi + edi*8]
mov dword [ebp - 0x28], eax
test eax, eax
jne 0x465b69
jmp 0x464d30
xor ebx, ebx
xor esi, esi
dec esi
jmp 0x465865
shl ecx, 5
add eax, ecx
add eax, 0x20
jmp 0x465943
call fcn.004ecc70
add dword [esi + 0x338], 1
adc dword [esi + 0x33c], 0
add dword [esi + 0x328], 1
adc dword [esi + 0x32c], 0
jmp 0x46519a
add dword [esi + 0x330], 1
adc dword [esi + 0x334], 0
add dword [esi + 0x328], 1
adc dword [esi + 0x32c], 0
mov ecx, esi
push edi
call fcn.0047e540
mov eax, dword [esi + edi*8]
test eax, eax
jne 0x465d88
jmp 0x46519a
xor ebx, ebx
xor esi, esi
dec esi
jmp 0x4656b3
shl ecx, 5
add eax, ecx
add eax, 0x20
jmp 0x4659a0
lea edx, [ebx + esi*8]
movzx eax, al
shr eax, 1
mov ecx, ebx
push eax
push edx
call fcn.0047e690
jmp 0x465ec8
je 0x466234
mov esi, dword [ebp - 0x30]
mov byte [esi + 2], 0
push esi
call fcn.0045a4b0
add esp, 4
mov ebx, eax
mov byte [esi + 2], 1
jmp 0x465f41
add dword [ebx + 0x338], 1
adc dword [ebx + 0x33c], 0
add dword [ebx + 0x328], 1
adc dword [ebx + 0x32c], 0
mov edi, dword [ebp - 0x2c]
shl edi, 5
mov esi, dword [ebp - 0x30]
lea ebx, [esi + 8]
mov ecx, ebx
call fcn.00477df0
mov edx, edi
mov eax, dword [esi + edi + 0x10]
mov ecx, dword [eax]
test ecx, ecx
je 0x466462
mov edi, ecx
mov byte [ebp - 0x20], 0
mov ecx, dword [ebp - 0x30]
mov esi, dword [ecx + edx + 0x1c]
mov ecx, dword [edi]
test ecx, ecx
je 0x466277
mov edx, ecx
not edx
cmp dword [edi + 4], edx
jne 0x466424
bswap ecx
mov dword [eax], ecx
inc word [eax + 0xc]
push ebx
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov ebx, edi
jmp 0x4656ba
add dword [ebx + 0x330], 1
adc dword [ebx + 0x334], 0
add dword [ebx + 0x328], 1
adc dword [ebx + 0x32c], 0
mov ecx, ebx
mov esi, dword [ebp - 0x2c]
push esi
call fcn.0047e540
mov eax, dword [ebx + esi*8]
mov edx, eax
test eax, eax
jne 0x465f8e
jmp 0x466234
mov edx, dword [ebp - 0x30]
lea ecx, [edx + esi]
add ecx, 0x10
lea eax, [ebp - 0x18]
push eax
push dword [ebp + 0x10]
push dword [ebp + 8]
push edx
call fcn.00466690
mov dword [ebp - 0x28], eax
test eax, eax
je 0x4664c6
mov ecx, dword [ebp - 0x28]
mov eax, ecx
and eax, 0xffe00000
shr ecx, 9
and ecx, 0xfe0
add eax, ecx
add eax, 0x1000
movzx edx, word [eax + 0x1e]
mov ecx, edx
neg ecx
shl edx, 5
mov esi, eax
sub esi, edx
cmp byte [esi + 0x11], 0
jne 0x4664e4
shl ecx, 5
mov eax, dword [eax + ecx + 8]
add eax, 0xc
mov esi, dword [eax]
jmp 0x465a54
mov edx, dword [ebp - 0x30]
lea ecx, [edx + esi]
add ecx, 0x10
lea eax, [ebp - 0x18]
push eax
push dword [ebp + 0x10]
push dword [ebp + 8]
push edx
call fcn.00466690
mov dword [ebp - 0x28], eax
test eax, eax
je 0x4664d5
mov ecx, dword [ebp - 0x28]
mov eax, ecx
and eax, 0xffe00000
shr ecx, 9
and ecx, 0xfe0
add eax, ecx
add eax, 0x1000
movzx edx, word [eax + 0x1e]
mov ecx, edx
neg ecx
shl edx, 5
mov esi, eax
sub esi, edx
cmp byte [esi + 0x11], 0
jne 0x4664f1
shl ecx, 5
mov eax, dword [eax + ecx + 8]
add eax, 0xc
mov esi, dword [eax]
jmp 0x465ac5
je 0x4663cf
mov esi, dword [ebp - 0x30]
mov byte [esi + 2], 0
push esi
call fcn.0045a4b0
add esp, 4
mov ebx, eax
mov byte [esi + 2], 1
jmp 0x466052
add dword [ebx + 0x338], 1
adc dword [ebx + 0x33c], 0
add dword [ebx + 0x328], 1
adc dword [ebx + 0x32c], 0
mov edi, dword [ebp - 0x2c]
shl edi, 5
mov esi, dword [ebp - 0x30]
lea ebx, [esi + 8]
mov ecx, ebx
call fcn.00477df0
mov edx, edi
mov eax, dword [esi + edi + 0x10]
mov ecx, dword [eax]
test ecx, ecx
je 0x4664fe
mov edi, ecx
mov byte [ebp - 0x20], 0
mov ecx, dword [ebp - 0x30]
mov esi, dword [ecx + edx + 0x1c]
mov ecx, dword [edi]
test ecx, ecx
je 0x46640e
mov edx, ecx
not edx
cmp dword [edi + 4], edx
jne 0x466424
bswap ecx
mov dword [eax], ecx
inc word [eax + 0xc]
push ebx
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov ebx, edi
jmp 0x46586c
call fcn.004b42d0
add dword [ebx + 0x330], 1
adc dword [ebx + 0x334], 0
add dword [ebx + 0x328], 1
adc dword [ebx + 0x32c], 0
mov ecx, ebx
mov esi, dword [ebp - 0x2c]
push esi
call fcn.0047e540
mov eax, dword [ebx + esi*8]
mov edx, eax
test eax, eax
jne 0x46609f
jmp 0x4663cf
mov esi, dword [ebp - 0x30]
lea ecx, [esi + edx]
add ecx, 0x10
lea eax, [ebp - 0x20]
push eax
push dword [ebp + 0x10]
push dword [ebp + 8]
push esi
call fcn.00466690
test eax, eax
je 0x46655a
mov edi, eax
mov ecx, eax
and eax, 0xffe00000
shr ecx, 9
and ecx, 0xfe0
add eax, ecx
add eax, 0x1000
movzx edx, word [eax + 0x1e]
mov ecx, edx
neg ecx
shl edx, 5
mov esi, eax
sub esi, edx
cmp byte [esi + 0x11], 0
jne 0x46656e
shl ecx, 5
mov eax, dword [eax + ecx + 8]
add eax, 0xc
mov esi, dword [eax]
jmp 0x46627f
mov dword [ebp - 0x28], 0
xor esi, esi
dec esi
jmp 0x465a54
mov dword [ebp - 0x28], 0
xor esi, esi
dec esi
jmp 0x465ac5
shl ecx, 5
add eax, ecx
add eax, 0x20
jmp 0x466327
shl ecx, 5
add eax, ecx
add eax, 0x20
jmp 0x46638f
mov esi, dword [ebp - 0x30]
lea ecx, [esi + edx]
add ecx, 0x10
lea eax, [ebp - 0x20]
push eax
push dword [ebp + 0x10]
push dword [ebp + 8]
push esi
call fcn.00466690
test eax, eax
je 0x466564
mov edi, eax
mov ecx, eax
and eax, 0xffe00000
shr ecx, 9
and ecx, 0xfe0
add eax, ecx
add eax, 0x1000
movzx edx, word [eax + 0x1e]
mov ecx, edx
neg ecx
shl edx, 5
mov esi, eax
sub esi, edx
cmp byte [esi + 0x11], 0
jne 0x46657b
shl ecx, 5
mov eax, dword [eax + ecx + 8]
add eax, 0xc
mov esi, dword [eax]
jmp 0x466416
xor edi, edi
xor esi, esi
dec esi
jmp 0x46627f
xor edi, edi
xor esi, esi
dec esi
jmp 0x466416
shl ecx, 5
add eax, ecx
add eax, 0x20
jmp 0x4664bf
shl ecx, 5
add eax, ecx
add eax, 0x20
jmp 0x466553