Function at 0x4eba40
Capabilities:
Get thread local storage value
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x140
mov esi, esp
mov edx, ecx
mov eax, dword [0x5f3418]
xor eax, ebp
mov dword [esi + 0x138], eax
lea eax, [ebp + 0xc]
mov ecx, dword [eax - 4]
mov dword [esi + 0x18], ecx
mov eax, dword [eax]
movzx eax, byte [eax + 0x12]
and eax, 0x7f
mov cl, 1
mov dword [esi + 0x10], ecx
cmp eax, 1
mov dword [esi + 0xc], edx
jne 0x4ec487
mov eax, dword [edx + 0x18]
mov ecx, 2
lock xadd dword [eax], ecx
test cl, 1
jne 0x4eca07
pxor xmm0, xmm0
movdqa xmmword [esi + 0x30], xmm0
movdqa xmmword [esi + 0xf0], xmm0
movdqa xmmword [esi + 0x100], xmm0
movdqa xmmword [esi + 0x110], xmm0
movdqu xmmword [esi + 0x11d], xmm0
xor eax, eax
mov byte [esi + 0xe0], al
mov dword [esi + 0xe5], eax
mov dword [esi + 0xe1], eax
mov dword [esi + 0xe9], 0x102
mov byte [esi + 0xed], al
lea eax, [ebp + 0xc]
mov edi, dword [eax]
mov dword [esi + 0x74], edi
add edi, 0x18
push edi
call dword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x4ec602
cmp byte [esi + 0x10], 0
je 0x4ec9d0
lea eax, [ebp + 0xc]
mov edi, dword [eax]
mov eax, dword [edi]
mov ebx, dword [eax + 0x18]
cmp ebx, 0x50da50
jne 0x4ec25f
pcmpeqd xmm0, xmm0
movdqa xmmword [esi + 0x80], xmm0
movdqa xmmword [esi + 0x90], xmm0
movdqa xmmword [esi + 0xa0], xmm0
movdqa xmmword [esi + 0xb0], xmm0
movdqa xmmword [esi + 0xc0], xmm0
xor eax, eax
dec eax
mov dword [esi + 0xd4], eax
mov dword [esi + 0xd0], eax
lea eax, [edi + 0x30]
mov dword [esi + 8], eax
mov eax, dword [edi + 0x38]
lea ebx, [edi + 0x40]
cmp eax, dword [edi + 0x3c]
je 0x4eca94
mov edx, dword [edi + 0x34]
mov ecx, dword [edi + 0x44]
cmp ecx, dword [edi + 0x48]
jne 0x4eca47
cmp edx, eax
jb 0x4ecaa9
mov ecx, dword [edi + 0x30]
imul eax, eax, 0x58
mov edx, dword [ecx + eax]
mov dword [esi + 0x80], edx
mov dword [ecx + eax], 0
movups xmm0, xmmword [ecx + eax + 4]
movups xmmword [esi + 0x84], xmm0
movups xmm0, xmmword [ecx + eax + 0x41]
movups xmmword [esi + 0xc1], xmm0
movups xmm0, xmmword [ecx + eax + 0x38]
movups xmmword [esi + 0xb8], xmm0
movdqu xmm0, xmmword [ecx + eax + 0x18]
movdqu xmm1, xmmword [ecx + eax + 0x28]
movdqu xmmword [esi + 0xa8], xmm1
movdqu xmmword [esi + 0x98], xmm0
mov ecx, dword [edi + 0x34]
mov eax, dword [edi + 0x38]
lea edx, [eax + 1]
cmp ecx, edx
jb 0x4ecaac
cmp ecx, eax
jb 0x4ecaaf
cmp eax, 0x7fffffff
je 0x4ecab2
mov ecx, dword [esi + 8]
mov ecx, dword [ecx]
imul eax, eax, 0x58
mov ebx, dword [ecx + eax]
test ebx, ebx
jne 0x4ec369
mov eax, dword [edi + 0x34]
mov ebx, dword [edi + 0x38]
inc ebx
xor ecx, ecx
cmp ebx, eax
cmove ebx, ecx
mov dword [edi + 0x38], ebx
cmp eax, 5
jae 0x4ec4fa
mov eax, dword [edi + 0x38]
mov ecx, dword [edi + 0x44]
mov edx, dword [edi + 0x48]
cmp eax, dword [edi + 0x3c]
jne 0x4ec4c3
cmp ecx, edx
jne 0x4ecab5
mov eax, dword [esi + 0x80]
mov dword [esi + 8], eax
movups xmm0, xmmword [esi + 0x84]
movaps xmmword [esi + 0x30], xmm0
lea ebx, [esi + 0xf4]
movups xmm0, xmmword [esi + 0x98]
movups xmmword [ebx], xmm0
movups xmm0, xmmword [esi + 0xa8]
movups xmmword [ebx + 0x10], xmm0
movups xmm0, xmmword [esi + 0xb8]
movups xmmword [ebx + 0x20], xmm0
movups xmm0, xmmword [esi + 0xc1]
movups xmmword [ebx + 0x29], xmm0
mov eax, dword [esi + 0x74]
mov cl, byte [eax + 0x10]
mov byte [esi + 0x88], cl
movsd xmm0, qword [eax + 8]
movsd qword [esi + 0x80], xmm0
mov cl, byte [eax + 0x15]
mov byte [esi + 0x8d], cl
mov ecx, dword [eax + 0x11]
mov dword [esi + 0x89], ecx
movsd qword [esi + 0xe0], xmm0
movsd xmm0, qword [esi + 0x86]
movsd qword [esi + 0xe6], xmm0
test eax, eax
je 0x4ebcdd
add eax, 0x18
push eax
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov dword [esi + 0x14], esp
push eax
sub esp, 0x5c
mov ecx, esp
lea eax, [ebp + 0xc]
mov edi, dword [eax]
mov eax, dword [esi + 8]
mov dword [ecx], eax
movaps xmm0, xmmword [esi + 0x30]
movups xmmword [ecx + 4], xmm0
movups xmm0, xmmword [ebx]
movups xmm1, xmmword [ebx + 0x10]
movups xmmword [ecx + 0x18], xmm0
movups xmmword [ecx + 0x28], xmm1
movups xmm0, xmmword [ebx + 0x20]
movups xmmword [ecx + 0x38], xmm0
movdqu xmm0, xmmword [ebx + 0x29]
movdqu xmmword [ecx + 0x41], xmm0
mov dword [ecx + 0x58], edi
lea eax, [esi + 0xe0]
mov dword [esi + 8], ecx
mov dword [ecx + 0x5c], eax
mov eax, dword [esi + 0xc]
mov eax, dword [eax]
mov ebx, dword [eax + 4]
cmp ebx, 0x40bbb0
jne 0x4ec33a
xor eax, eax
dec eax
mov dword [esi + 0x58], eax
mov dword [esi + 0x5c], eax
mov eax, dword [edi]
mov ebx, dword [eax]
cmp ebx, 0x4ff190
jne 0x4ec296
mov eax, dword [edi + 0x2c]
mov dword [esi + 0x58], eax
add edi, 0x58
mov eax, edi
shr eax, 0xe
mov ecx, edi
shr ecx, 0x13
mov ecx, dword [ecx*4 + 0x6c24fc]
bt ecx, eax
jb 0x4ec32c
mov eax, edi
shr eax, 0x15
mov byte [eax + 0x6ca4fc], 1
mov dword [esi + 0x5c], edi
mov eax, dword [esi + 0x58]
mov dword [esi + 0x50], eax
xor eax, eax
inc eax
lock xadd dword [0x6cf6f4], eax
mov dword [esi + 0x54], eax
mov eax, dword [0x6cf6f0]
mov ecx, dword [0x5f75b4]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x4ec638
push dword [0x5f50f8]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
and eax, 0xfffffffc
je 0x4ec8a7
mov ecx, dword [0x6cf6e8]
lea edx, [esi + 0x50]
mov dword [eax + ecx*8], edx
mov ecx, dword [0x6cf6ec]
mov edx, dword [0x6cf6e8]
mov dword [eax + edx*8 + 4], ecx
mov eax, dword [0x6cf700]
mov ecx, dword [0x5f75b4]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x4ec6d0
lea edi, [esi + 0x54]
push dword [0x5f50f8]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
and eax, 0xfffffffc
je 0x4ec8b1
mov ecx, dword [0x6cf6f8]
mov dword [eax + ecx*8], edi
mov ecx, dword [0x6cf6fc]
mov edx, dword [0x6cf6f8]
mov dword [eax + edx*8 + 4], ecx
mov eax, dword [esi + 8]
mov eax, dword [eax + 0x5c]
mov al, byte [eax + 9]
mov byte [esi + 0x4c], al
mov edi, dword [0x6cf5bc]
cmp edi, 1
jbe 0x4ec768
push dword [0x5f50f8]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
and eax, 0xfffffffc
je 0x4ec8bb
mov ecx, dword [edi]
lea edx, [esi + 0x4c]
mov dword [eax + ecx*8], edx
mov ecx, dword [edi]
mov edx, dword [edi + 4]
mov dword [eax + ecx*8 + 4], edx
pcmpeqd xmm0, xmm0
movdqa xmmword [esi + 0x80], xmm0
xor eax, eax
dec eax
mov dword [esi + 0x94], eax
mov dword [esi + 0x90], eax
mov byte [esi + 0x80], 0
mov edi, dword [esi + 0x5c]
test edi, edi
je 0x4ec2ab
mov ebx, dword [0x6cf4a8]
cmp ebx, 1
jbe 0x4ec8f6
push dword [0x5f50f8]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
and eax, 0xfffffffc
je 0x4ec8c5
mov ecx, dword [ebx]
mov dword [eax + ecx*8], edi
mov ecx, dword [ebx]
mov edx, dword [ebx + 4]
mov dword [eax + ecx*8 + 4], edx
xor eax, eax
dec eax
mov dword [esi + 0x74], eax
mov dword [esi + 0x7c], eax
mov dword [esi + 0x78], eax
xor eax, eax
mov byte [esi + 0x74], al
pcmpeqd xmm0, xmm0
lea ecx, [esi + 0x64]
movdqa xmmword [ecx - 4], xmm0
mov byte [ecx - 4], al
mov eax, dword [esi + 8]
mov eax, dword [eax + 0x58]
mov ecx, dword [eax + 0x28]
cmp ecx, 1
jne 0x4ec239
mov eax, dword [eax + 0x24]
test eax, eax
je 0x4ebf1c
lock inc dword [eax + 4]
mov dword [esi + 0x78], eax
mov eax, dword [0x6bee80]
mov ecx, dword [0x5f75b4]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x4ec83e
lea ebx, [esi + 0x78]
push dword [0x5f50f8]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
and eax, 0xfffffffc
je 0x4ec8d7
mov ecx, dword [0x6bee78]
mov dword [eax + ecx*8], ebx
mov ecx, dword [0x6bee7c]
mov edx, dword [0x6bee78]
mov dword [eax + edx*8 + 4], ecx
mov byte [esi + 0x74], 1
mov edi, dword [esi + 8]
mov edx, dword [edi + 0x58]
mov eax, dword [edi + 0x5c]
movzx ecx, byte [eax + 0xa]
and ecx, 0x7f
cmp ecx, 1
jne 0x4ec4a4
lea ebx, [esi + 0x58]
mov ecx, dword [esi + 0xc]
push ebx
push edx
push eax
push edi
call fcn.004ecdb0
mov ebx, dword [edi]
mov dword [edi], 0
test ebx, ebx
jne 0x4ec88a
cmp byte [esi + 0x60], 0
jne 0x4ec453
cmp byte [esi + 0x74], 0
je 0x4ec01d
mov eax, dword [0x6bee80]
mov ecx, dword [0x5f75b4]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x4ec7f2
push dword [0x5f50f8]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
and eax, 0xfffffffc
je 0x4ec00c
mov ecx, dword [0x6bee78]
mov dword [eax + ecx*8], 0
mov ecx, dword [0x6bee7c]
mov edx, dword [0x6bee78]
mov dword [eax + edx*8 + 4], ecx
mov eax, dword [esi + 0x78]
test eax, eax
je 0x4ec01d
lock dec dword [eax + 4]
je 0x4ecac8
mov edi, dword [0x6cf4a8]
cmp edi, 1
jbe 0x4ec93b
push dword [0x5f50f8]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
and eax, 0xfffffffc
je 0x4ec04f
mov ecx, dword [edi]
mov dword [eax + ecx*8], 0
mov ecx, dword [edi]
mov edx, dword [edi + 4]
mov dword [eax + ecx*8 + 4], edx
cmp byte [esi + 0x80], 0
jne 0x4ec2c5
mov edi, dword [0x6cf5bc]
cmp edi, 1
jbe 0x4ec7ad
push dword [0x5f50f8]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
and eax, 0xfffffffc
je 0x4ec08e
mov ecx, dword [edi]
mov dword [eax + ecx*8], 0
mov ecx, dword [edi]
mov edx, dword [edi + 4]
mov dword [eax + ecx*8 + 4], edx
mov eax, dword [0x6cf6f0]
mov ecx, dword [0x5f75b4]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x4ec684
push dword [0x5f50f8]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
and eax, 0xfffffffc
je 0x4ec0dd
mov ecx, dword [0x6cf6e8]
mov dword [eax + ecx*8], 0
mov ecx, dword [0x6cf6ec]
mov edx, dword [0x6cf6e8]
mov dword [eax + edx*8 + 4], ecx
mov eax, dword [0x6cf700]
mov ecx, dword [0x5f75b4]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x4ec71c
push dword [0x5f50f8]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
and eax, 0xfffffffc
je 0x4ec12c
mov ecx, dword [0x6cf6f8]
mov dword [eax + ecx*8], 0
mov ecx, dword [0x6cf6fc]
mov edx, dword [0x6cf6f8]
mov dword [eax + edx*8 + 4], ecx
mov eax, dword [esi + 0x5c]
mov ecx, eax
shr ecx, 0xe
mov edx, eax
shr edx, 0x13
mov edx, dword [edx*4 + 0x6c24fc]
bt edx, ecx
jb 0x4ec31e
mov eax, dword [esi + 8]
mov edi, dword [eax]
test edi, edi
jne 0x4ec34c
mov esp, dword [esi + 0x14]
cmp byte [esi + 0x10], 0
je 0x4ec185
lea eax, [ebp + 0xc]
mov eax, dword [eax]
mov al, byte [eax + 0x12]
and al, 0x7f
cmp al, 1
jne 0x4ec185
mov eax, dword [esi + 0xc]
mov eax, dword [eax + 0x18]
mov ecx, 0xfffffffe
lock xadd dword [eax], ecx
cmp ecx, 3
je 0x4eca1b
lea eax, [ebp + 0xc]
mov edi, dword [eax]
mov eax, dword [edi]
mov ebx, dword [eax + 0x1c]
cmp ebx, 0x50de10
jne 0x4ec27b
lea eax, [edi + 0x18]
mov dword [esi + 8], eax
push eax
call dword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x4ec8e9
mov eax, dword [edi + 0x38]
cmp eax, dword [edi + 0x3c]
jne 0x4ec460
mov eax, dword [edi + 0x44]
cmp eax, dword [edi + 0x48]
jne 0x4ec460
mov ebx, dword [edi + 0x24]
test ebx, ebx
je 0x4ec1d9
lock dec dword [ebx + 4]
je 0x4ec5bd
mov dword [edi + 0x68], 0
push dword [esi + 8]
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
xor eax, eax
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov dword [ecx + 4], eax
lea eax, [ebp + 0xc]
mov edi, dword [eax]
test edi, edi
jne 0x4ec386
mov dword [eax], 0
test edi, edi
jne 0x4ec434
lea eax, [ebp + 0xc]
mov edi, dword [eax]
test edi, edi
jne 0x4ec9e8
lea eax, [ebp + 8]
mov edi, dword [eax]
mov ecx, dword [esi + 0x138]
xor ecx, ebp
call fcn.00512ee3
mov eax, edi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 0xc
cmp ecx, 2
jne 0x4ebf75
mov eax, dword [eax + 0x24]
test eax, eax
je 0x4ec24d
lock inc dword [eax + 4]
lea ecx, [esi + 0x64]
push eax
call fcn.00403c30
mov byte [esi + 0x60], 1
jmp 0x4ebf75
mov ecx, ebx
call dword [section..00cfg]
lea eax, [esi + 0x74]
lea edx, [esi + 0x80]
mov ecx, edi
push eax
push edx
call ebx
jmp 0x4ebc47
mov ecx, ebx
call dword [section..00cfg]
mov ecx, edi
push 0
call ebx
test al, al
je 0x4ec1e9
jmp 0x4ec469
mov ecx, ebx
call dword [section..00cfg]
lea eax, [esi + 0x58]
mov ecx, edi
push eax
call ebx
jmp 0x4ebd87
lea edi, [esi + 0x84]
xor eax, eax
mov dword [edi + 4], eax
mov dword [edi + 8], eax
mov dword [edi + 0xc], eax
mov byte [edi - 4], 1
jmp 0x4ebead
mov edi, dword [esi + 0x88]
test edi, edi
je 0x4ec05c
mov eax, dword [esi + 0x8c]
mov ecx, edi
cmp eax, edi
je 0x4ec30a
lea ecx, [eax - 0xc]
mov dword [esi + 0x1c], ecx
mov ebx, dword [eax - 8]
test ebx, ebx
je 0x4ec2fb
mov ecx, dword [eax - 4]
call dword [section..00cfg]
push ebx
call ecx
add esp, 4
mov ecx, dword [esi + 0x1c]
mov eax, ecx
cmp ecx, edi
jne 0x4ec2df
mov ecx, dword [esi + 0x88]
mov dword [esi + 0x8c], edi
push ecx
call fcn.0050fc7c
add esp, 4
jmp 0x4ec05c
push eax
call fcn.004e3ba0
add esp, 4
jmp 0x4ec149
push edi
call fcn.004e3a80
add esp, 4
jmp 0x4ebd84
mov ecx, ebx
call dword [section..00cfg]
mov ecx, dword [esi + 0xc]
call ebx
jmp 0x4ec156
lock dec dword [edi]
jne 0x4ec156
mov ecx, dword [edi + 8]
call dword [section..00cfg]
push edi
call ecx
add esp, 4
jmp 0x4ec156
lock dec dword [ebx]
jne 0x4ebc13
mov ecx, dword [ebx + 8]
call dword [section..00cfg]
push ebx
call ecx
add esp, 4
jmp 0x4ebc13
lea ecx, [ebp + 8]
mov ebx, dword [ecx + 8]
test ebx, ebx
je 0x4ec200
mov dword [eax], 0
mov al, byte [edi + 0x12]
and al, 0x7f
cmp al, 2
je 0x4ecad6
lock dec dword [ebx + 0x1c]
jne 0x4ec434
lea eax, [ebx + 0x24]
mov dword [esi + 8], eax
push eax
call dword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x4ecae2
push dword [ebx + 0x28]
call dword [sym.imp.KERNEL32.dll_WakeAllConditionVariable]
push dword [esi + 8]
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
push dword [esi + 8]
call dword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x4ecaef
mov eax, dword [ebx + 0x2c]
mov dword [esi + 0xc], eax
mov eax, dword [ebx + 0x30]
mov dword [esi + 0x18], eax
pxor xmm0, xmm0
mov eax, dword [ebx + 0x34]
mov ecx, dword [ebx + 0x38]
mov dword [esi + 0x10], ecx
movdqu xmmword [ebx + 0x2c], xmm0
mov ebx, eax
push dword [esi + 8]
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov eax, dword [esi + 0x10]
cmp ebx, eax
jne 0x4ecafc
push 0
push dword [esi + 0xc]
push 0x5e3220
call fcn.004ee300
add esp, 0xc
jmp 0x4ec206
lock dec dword [edi + 4]
jne 0x4ec20e
mov ecx, edi
call fcn.00405b10
push edi
call fcn.0050fc7c
add esp, 4
jmp 0x4ec20e
lea ecx, [esi + 0x64]
call fcn.00403db0
jmp 0x4ebfb7
push dword [esi + 8]
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
lea edi, [ebp + 8]
mov eax, dword [edi + 4]
mov edx, dword [esi + 0x18]
mov dword [edx], eax
xor eax, eax
mov dword [edi + 4], eax
mov ecx, dword [edi + 8]
mov dword [edi + 8], eax
mov dword [edx + 4], ecx
jmp 0x4ec1f3
test eax, eax
jne 0x4ecbbb
mov eax, dword [esi + 0xc]
mov eax, dword [eax + 0x18]
mov eax, dword [eax]
test al, 1
sete al
mov dword [esi + 0x10], eax
jmp 0x4eba98
test ecx, ecx
jne 0x4ecbc9
lea ebx, [esi + 0x58]
mov ecx, dword [esi + 0xc]
push ebx
push edx
push eax
mov edi, dword [esi + 8]
push edi
call fcn.00403790
jmp 0x4ebf9d
cmp ecx, edx
jne 0x4ecbec
cmp dword [edi + 0x34], eax
jb 0x4ecbe9
mov ecx, dword [esi + 8]
mov ecx, dword [ecx]
imul edx, eax, 0x58
mov eax, dword [ecx + edx + 0x18]
mov ecx, dword [ecx + edx + 0x1c]
movd xmm0, eax
movd xmm1, ecx
punpckldq xmm0, xmm1
movq qword [edi + 0x50], xmm0
jmp 0x4ebc47
lea edx, [edi + 0x3c]
mov dword [esi + 0x14], edx
mov edx, dword [edx]
cmp edx, ebx
cmovb ecx, eax
sub ecx, ebx
mov dword [esi + 0x1c], edx
add ecx, edx
dec eax
mov edx, eax
sub edx, ecx
cmp edx, ecx
jb 0x4ebc2d
mov edx, ecx
shr edx, 2
add edx, ecx
cmp edx, 4
mov ecx, 3
cmovae ecx, edx
cmp ecx, eax
jae 0x4ebc2d
inc ecx
mov eax, ecx
mov ecx, 0x58
mov dword [esi + 0x2c], eax
mul ecx
lea ecx, [edi + 0x38]
mov dword [esi + 0x28], ecx
jo 0x4ecd12
mov dword [esi + 0x20], eax
push 0
push eax
push 0x5e3220
call fcn.004eef50
add esp, 0xc
mov ecx, eax
mov eax, dword [esi + 0x20]
test ecx, ecx
jne 0x4ec577
cmp byte [0x6c0254], 0
jne 0x4ecd24
lea edx, [esi + 0x60]
mov dword [edx], ecx
mov eax, dword [esi + 0x2c]
mov dword [edx + 4], eax
push dword [esi + 0x14]
push dword [esi + 0x28]
push edx
push dword [esi + 0x1c]
push ebx
push dword [esi + 8]
call fcn.0040c6d0
add esp, 0x18
push 0
push dword [edi + 0x30]
push 0x5e3220
call fcn.004ee300
add esp, 0xc
lea ecx, [esi + 0x60]
mov eax, dword [ecx]
mov dword [edi + 0x30], eax
mov eax, dword [ecx + 4]
mov dword [edi + 0x34], eax
jmp 0x4ebc2d
mov eax, dword [ebx]
mov ecx, dword [eax + 8]
cmp ecx, 0x50b580
jne 0x4ec60e
mov eax, dword [eax + 4]
cmp eax, 0x501670
jne 0x4ec621
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x4ec5e4
lock dec dword [eax]
je 0x4ec9c2
mov eax, dword [ebx + 8]
test eax, eax
je 0x4ec5f4
lock dec dword [eax]
je 0x4ec980
push ebx
call fcn.0050fc7c
add esp, 4
jmp 0x4ec1d9
mov ecx, edi
call fcn.004f8930
jmp 0x4ebaff
mov dword [esi + 0xc], ecx
call dword [section..00cfg]
mov ecx, ebx
call dword [esi + 0xc]
jmp 0x4ec1d9
mov ecx, eax
mov dword [esi + 0xc], eax
call dword [section..00cfg]
mov ecx, ebx
push 1
call dword [esi + 0xc]
jmp 0x4ec1d9
push 0x6cf6f0
call fcn.00510c6d
add esp, 4
cmp dword [0x6cf6f0], 0xffffffff
jne 0x4ebdbc
mov dword [0x6cf6ec], 0
mov dword [0x6cf6e8], 0xffffffff
mov ecx, 0x6cf6e8
push 0
call fcn.0040c200
push 0x6cf6f0
call fcn.00510d9d
add esp, 4
jmp 0x4ebdbc
push 0x6cf6f0
call fcn.00510c6d
add esp, 4
cmp dword [0x6cf6f0], 0xffffffff
jne 0x4ec0af
mov dword [0x6cf6ec], 0
mov dword [0x6cf6e8], 0xffffffff
mov ecx, 0x6cf6e8
push 0
call fcn.0040c200
push 0x6cf6f0
call fcn.00510d9d
add esp, 4
jmp 0x4ec0af
push 0x6cf700
call fcn.00510c6d
add esp, 4
cmp dword [0x6cf700], 0xffffffff
jne 0x4ebe0e
mov dword [0x6cf6fc], 0
mov dword [0x6cf6f8], 0xffffffff
mov ecx, 0x6cf6f8
push 0
call fcn.0040c200
push 0x6cf700
call fcn.00510d9d
add esp, 4
jmp 0x4ebe0e
push 0x6cf700
call fcn.00510c6d
add esp, 4
cmp dword [0x6cf700], 0xffffffff
jne 0x4ec0fe
mov dword [0x6cf6fc], 0
mov dword [0x6cf6f8], 0xffffffff
mov ecx, 0x6cf6f8
push 0
call fcn.0040c200
push 0x6cf700
call fcn.00510d9d
add esp, 4
jmp 0x4ec0fe
push 0x6cf5bc
call fcn.00408860
add esp, 4
test al, al
je 0x4ecd4f
mov dword [0x6cf5c4], 0
mov dword [0x6cf5c0], 0xffffffff
mov edi, 0x6cf5c0
mov ecx, 0x6cf5c0
push 0
call fcn.0040c200
mov dword [0x6cf5bc], edi
jmp 0x4ebe5a
push 0x6cf5bc
call fcn.00408860
add esp, 4
test al, al
je 0x4ecd5a
mov dword [0x6cf5c4], 0
mov dword [0x6cf5c0], 0xffffffff
mov edi, 0x6cf5c0
mov ecx, 0x6cf5c0
push 0
call fcn.0040c200
mov dword [0x6cf5bc], edi
jmp 0x4ec06b
push 0x6bee80
call fcn.00510c6d
add esp, 4
cmp dword [0x6bee80], 0xffffffff
jne 0x4ebfde
mov dword [0x6bee7c], 0
mov dword [0x6bee78], 0xffffffff
mov ecx, 0x6bee78
push 0
call fcn.0040c200
push 0x6bee80
call fcn.00510d9d
add esp, 4
jmp 0x4ebfde
push 0x6bee80
call fcn.00510c6d
add esp, 4
cmp dword [0x6bee80], 0xffffffff
jne 0x4ebf40
mov dword [0x6bee7c], 0
mov dword [0x6bee78], 0xffffffff
mov ecx, 0x6bee78
push 0
call fcn.0040c200
push 0x6bee80
call fcn.00510d9d
add esp, 4
jmp 0x4ebf40
lock dec dword [ebx]
jne 0x4ebfad
mov ecx, dword [ebx + 8]
call dword [section..00cfg]
push ebx
call ecx
add esp, 4
jmp 0x4ebfad
call fcn.00404220
jmp 0x4ebdd1
call fcn.00404220
jmp 0x4ebe26
call fcn.00404220
jmp 0x4ebe6f
test edi, edi
je 0x4ebedf
call fcn.00404220
jmp 0x4ebed1
test ebx, ebx
je 0x4ebf71
call fcn.00404220
jmp 0x4ebf58
mov ecx, dword [esi + 8]
call fcn.004f8930
jmp 0x4ec1b0
push 0x6cf4a8
call fcn.00408860
add esp, 4
test al, al
je 0x4ecd65
mov dword [0x6cf4b0], 0
mov dword [0x6cf4ac], 0xffffffff
mov ebx, 0x6cf4ac
mov ecx, 0x6cf4ac
push 0
call fcn.0040c200
mov dword [0x6cf4a8], ebx
jmp 0x4ebebc
push 0x6cf4a8
call fcn.00408860
add esp, 4
test al, al
je 0x4ecd70
mov dword [0x6cf4b0], 0
mov dword [0x6cf4ac], 0xffffffff
mov edi, 0x6cf4ac
mov ecx, 0x6cf4ac
push 0
call fcn.0040c200
mov dword [0x6cf4a8], edi
jmp 0x4ec02c
mov dword [esi + 0xc], eax
mov eax, dword [eax + 0x10]
mov ecx, eax
shr ecx, 0xe
mov edx, eax
shr edx, 0x13
mov edx, dword [edx*4 + 0x6c24fc]
bt edx, ecx
jb 0x4ecd7b
mov eax, dword [esi + 0xc]
mov dword [eax + 0x10], 0
lea ecx, [eax + 4]
call fcn.0040dae0
push dword [esi + 0xc]
call fcn.0050fc7c
add esp, 4
jmp 0x4ec5f4
push eax
call fcn.0050fc7c
add esp, 4
jmp 0x4ec5e4
lea eax, [esi + 0x74]
lea edx, [esi + 0x80]
lea ecx, [ebp + 0xc]
push eax
push edx
call fcn.00598470
jmp 0x4ebc47
lock dec dword [edi + 4]
jne 0x4ec21b
mov ecx, edi
call fcn.00405b10
push edi
call fcn.0050fc7c
add esp, 4
jmp 0x4ec21b
mov ecx, dword [esi + 0xc]
call fcn.00596f70
mov dword [esi + 0x10], 0
jmp 0x4eba98
mov eax, dword [esi + 0xc]
lea edi, [eax + 0x3c]
push edi
call dword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x4ecd43
mov eax, dword [esi + 0xc]
mov ecx, dword [eax + 0x40]
call fcn.0050fc40
push edi
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
jmp 0x4ec185
cmp edx, eax
jb 0x4ecd89
mov edx, dword [esi + 8]
mov edx, dword [edx]
mov dword [esi + 0x14], edx
imul eax, eax, 0x58
mov dword [esi + 0x1c], eax
lea eax, [esi + 0x60]
push eax
call fcn.0050fba0
lea eax, [esi + 0x60]
mov eax, dword [eax]
mov ecx, dword [esi + 0x14]
mov edx, dword [esi + 0x1c]
cmp eax, dword [ecx + edx + 0x18]
lea eax, [esi + 0x60]
mov eax, dword [eax + 4]
sbb eax, dword [ecx + edx + 0x1c]
jl 0x4eca94
lea eax, [esi + 0x80]
mov ecx, edi
push eax
call fcn.00597540
jmp 0x4ebc2d
lea eax, [esi + 0x80]
mov ecx, ebx
push 0
push eax
call fcn.00597f40
jmp 0x4ebc2d
int3
int3
int3
int3
lea ebx, [esi + 0x60]
push ebx
call fcn.0050fba0
mov eax, dword [ebx]
mov ecx, dword [ebx + 4]
jmp 0x4ec4e4
push eax
call fcn.0050b620
add esp, 4
jmp 0x4ec01d
mov ecx, ebx
call fcn.00596f70
jmp 0x4ec3a7
mov ecx, dword [esi + 8]
call fcn.004f8930
jmp 0x4ec3c6
mov ecx, dword [esi + 8]
call fcn.004f8930
jmp 0x4ec3e9
mov eax, ebx
mov dword [esi + 8], ebx
cmp dword [esi + 0x18], ebx
jb 0x4ecd8c
mov eax, dword [esi + 0xc]
mov ecx, dword [eax + ebx*4]
mov dword [esi + 0x14], ecx
mov dword [eax + ebx*4], 0
mov ecx, dword [ecx + 4]
call dword [section..00cfg]
push dword [esi + 0x14]
call ecx
add esp, 4
mov ecx, dword [esi + 0x14]
test ecx, ecx
jne 0x4eccf1
inc ebx
cmp ebx, dword [esi + 0x18]
mov eax, 0
cmove ebx, eax
cmp ebx, dword [esi + 0x10]
jne 0x4ecb01
mov eax, dword [esi + 8]
cmp dword [esi + 0x10], eax
jbe 0x4ecc37
mov eax, dword [esi + 0x18]
cmp eax, dword [esi + 0x10]
jb 0x4ecd8f
mov eax, dword [esi + 0x18]
cmp eax, dword [esi + 8]
jb 0x4ecd92
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0x10]
jg 0x4ecd95
mov eax, dword [esi + 0x10]
shl eax, 2
mov ecx, dword [esi + 8]
shl ecx, 2
mov dword [esi + 0x10], eax
mov dword [esi + 8], ecx
mov eax, dword [esi + 0xc]
mov ebx, dword [eax + ecx]
test ebx, ebx
jne 0x4ecba5
mov ecx, dword [esi + 8]
add ecx, 4
mov eax, dword [esi + 0x10]
cmp eax, ecx
jne 0x4ecb86
jmp 0x4ec41d
lock dec dword [ebx]
jne 0x4ecb93
mov ecx, dword [ebx + 8]
call dword [section..00cfg]
push ebx
call ecx
add esp, 4
jmp 0x4ecb93
cmp eax, 2
je 0x4eba98
jmp 0x4eca0f
cmp ecx, 2
mov edi, dword [esi + 8]
jne 0x4ebf9d
lea ebx, [esi + 0x58]
mov ecx, dword [esi + 0xc]
push ebx
push edx
push eax
push edi
call fcn.00596fc0
jmp 0x4ebf9d
int3
lea eax, [esi + 0x60]
push eax
call fcn.0050fba0
mov eax, dword [edi + 0x38]
cmp dword [edi + 0x34], eax
jb 0x4ecd98
mov ecx, dword [esi + 8]
mov ecx, dword [ecx]
imul edx, eax, 0x58
mov ebx, dword [esi + 0x60]
mov dword [esi + 0x14], ebx
mov eax, dword [ecx + edx + 0x18]
mov ecx, dword [ecx + edx + 0x1c]
cmp ebx, eax
mov edx, eax
cmovb edx, ebx
mov ebx, dword [esi + 0x64]
mov dword [esi + 8], ebx
cmp dword [esi + 8], ecx
cmovl eax, dword [esi + 0x14]
cmove eax, edx
cmovl ecx, dword [esi + 8]
jmp 0x4ec4e4
mov eax, dword [esi + 0x18]
cmp eax, dword [esi + 8]
jb 0x4ecd9b
jl 0x4ecd9e
jne 0x4ecca8
mov eax, dword [esi + 0x18]
cmp eax, dword [esi + 0x10]
jb 0x4ecda1
cmp dword [esi + 0x10], 0
js 0x4ecda4
mov eax, dword [esi + 0x10]
je 0x4ec41d
shl eax, 2
xor ebx, ebx
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0xc]
mov ecx, dword [eax + ebx]
test ecx, ecx
jne 0x4ecc8b
add ebx, 4
mov eax, dword [esi + 0x10]
cmp eax, ebx
jne 0x4ecc72
jmp 0x4ec41d
mov eax, ecx
lock dec dword [ecx]
jne 0x4ecc7c
mov dword [esi + 8], eax
mov ecx, dword [eax + 8]
call dword [section..00cfg]
push dword [esi + 8]
call ecx
add esp, 4
jmp 0x4ecc7c
mov eax, dword [esi + 0x18]
lea eax, [eax*4]
mov dword [esi + 0x14], eax
shl dword [esi + 8], 2
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 8]
mov ebx, dword [eax + ecx]
test ebx, ebx
jne 0x4eccdb
mov ecx, dword [esi + 8]
add ecx, 4
mov eax, ecx
mov dword [esi + 8], ecx
cmp dword [esi + 0x14], ecx
jne 0x4eccb9
jmp 0x4ecc4b
lock dec dword [ebx]
jne 0x4eccc6
mov ecx, dword [ebx + 8]
call dword [section..00cfg]
push ebx
call ecx
add esp, 4
jmp 0x4eccc6
mov eax, ecx
lock dec dword [ecx]
jne 0x4ecb36
mov ecx, dword [eax + 8]
call dword [section..00cfg]
push dword [esi + 0x14]
call ecx
add esp, 4
jmp 0x4ecb36
int3
push eax
mov dword [esi + 0x24], ecx
call fcn.00587d60
mov ecx, dword [esi + 0x24]
add esp, 4
test al, al
mov eax, dword [esi + 0x20]
jne 0x4ec551
jmp 0x4ec577
mov ecx, edi
call fcn.004f8930
jmp 0x4eca30
mov edi, dword [0x6cf5bc]
jmp 0x4ebe5a
mov edi, dword [0x6cf5bc]
jmp 0x4ec06b
mov ebx, dword [0x6cf4a8]
jmp 0x4ebebc
mov edi, dword [0x6cf4a8]
jmp 0x4ec02c
push eax
call fcn.004e3ba0
add esp, 4
jmp 0x4ec9a0
int3
int3
int3
int3
int3
int3
int3
int3
int3
int3